{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# WaveNet Sample Generation\n",
    "Fast generation of samples from a pretrained WaveNet model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from model import WaveNetModel, Optimizer, WaveNetData\n",
    "\n",
    "import torch\n",
    "import numpy as np\n",
    "import time\n",
    "\n",
    "from IPython.display import Audio\n",
    "from matplotlib import pyplot as plt\n",
    "from matplotlib import pylab as pl\n",
    "from IPython import display\n",
    "\n",
    "%matplotlib notebook"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_sample = \"train_samples/saber.wav\"\n",
    "parameters = \"model_parameters/saber_10-2-128-32-8\"\n",
    "layers = 10\n",
    "blocks = 2\n",
    "classes = 128\n",
    "hidden_channels = 32\n",
    "kernel_size = 8\n",
    "\n",
    "use_cuda = torch.cuda.is_available()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "parameter count:  180608\n"
     ]
    }
   ],
   "source": [
    "model = WaveNetModel(num_layers=layers,\n",
    "                     num_blocks=blocks,\n",
    "                     num_classes=classes,\n",
    "                     hidden_channels=hidden_channels,\n",
    "                     kernel_size=kernel_size)\n",
    "\n",
    "if use_cuda:\n",
    "    model.cuda()\n",
    "    print(\"use cuda\")\n",
    "    \n",
    "model.load_state_dict(torch.load(parameters))\n",
    "print(\"parameter count: \", model.parameter_count())\n",
    "\n",
    "data = WaveNetData(train_sample,\n",
    "                   input_length=model.scope,\n",
    "                   target_length=model.last_block_scope,\n",
    "                   num_classes=model.num_classes,\n",
    "                   cuda=use_cuda)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "window.mpl = {};\n",
       "\n",
       "mpl.get_websocket_type = function() {\n",
       "    if (typeof(WebSocket) !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert('Your browser does not have WebSocket support.' +\n",
       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "              'Firefox 4 and 5 are also supported but you ' +\n",
       "              'have to enable WebSockets in about:config.');\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent = (\n",
       "                \"This browser does not support binary websocket messages. \" +\n",
       "                    \"Performance may be slow.\");\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen =  function () {\n",
       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
       "            fig.send_message(\"send_image_mode\", {});\n",
       "            fig.send_message(\"refresh\", {});\n",
       "        }\n",
       "\n",
       "    this.imageObj.onload = function() {\n",
       "            if (fig.image_mode == 'full') {\n",
       "                // Full images could contain transparency (where diff images\n",
       "                // almost always do), so we need to clear the canvas so that\n",
       "                // there is no ghosting.\n",
       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "            }\n",
       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "        };\n",
       "\n",
       "    this.imageObj.onunload = function() {\n",
       "        this.ws.close();\n",
       "    }\n",
       "\n",
       "    this.ws.onmessage = this._make_on_message_function(this);\n",
       "\n",
       "    this.ondownload = ondownload;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_header = function() {\n",
       "    var titlebar = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width);\n",
       "        canvas.attr('height', height);\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus () {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_message = function(type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function() {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'];\n",
       "    var y0 = fig.canvas.height - msg['y0'];\n",
       "    var x1 = msg['x1'];\n",
       "    var y1 = fig.canvas.height - msg['y1'];\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
       "    var cursor = msg['cursor'];\n",
       "    switch(cursor)\n",
       "    {\n",
       "    case 0:\n",
       "        cursor = 'pointer';\n",
       "        break;\n",
       "    case 1:\n",
       "        cursor = 'default';\n",
       "        break;\n",
       "    case 2:\n",
       "        cursor = 'crosshair';\n",
       "        break;\n",
       "    case 3:\n",
       "        cursor = 'move';\n",
       "        break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = cursor;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message(\"ack\", {});\n",
       "}\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            /* FIXME: We get \"Resource interpreted as Image but\n",
       "             * transferred with MIME type text/plain:\" errors on\n",
       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "             * to be part of the websocket stream */\n",
       "            evt.data.type = \"image/png\";\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src);\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig[\"handle_\" + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "}\n",
       "\n",
       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function(e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e)\n",
       "        e = window.event;\n",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\n",
       "\n",
       "    return {\"x\": x, \"y\": y};\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * http://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys (original) {\n",
       "  return Object.keys(original).reduce(function (obj, key) {\n",
       "    if (typeof original[key] !== 'object')\n",
       "        obj[key] = original[key]\n",
       "    return obj;\n",
       "  }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
       "    var canvas_pos = mpl.findpos(event)\n",
       "\n",
       "    if (name === 'button_press')\n",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x;\n",
       "    var y = canvas_pos.y;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.key_event = function(event, name) {\n",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, {key: value,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
       "    if (name == 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message(\"toolbar_button\", {name: name});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
       "\n",
       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.close = function() {\n",
       "        comm.close()\n",
       "    };\n",
       "    ws.send = function(m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function(msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['data'])\n",
       "    });\n",
       "    return ws;\n",
       "}\n",
       "\n",
       "mpl.mpl_figure_comm = function(comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element.get(0);\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
       "        return;\n",
       "    }\n",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    fig.root.unbind('remove')\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable()\n",
       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
       "    fig.close_ws(fig, msg);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message(\"ack\", {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items){\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('tabindex', 0)\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager)\n",
       "        manager = IPython.keyboard_manager;\n",
       "\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which == 13) {\n",
       "        this.canvas_div.blur();\n",
       "        // select the cell after this one\n",
       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
       "        IPython.notebook.select(index + 1);\n",
       "    }\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.find_output_cell = function(html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i=0; i<ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code'){\n",
       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] == html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "}\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel != null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x10f8de160>]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "start_data = data.get_minibatch([model.scope])[0].squeeze()\n",
    "#start_tensor = torch.zeros((model.scope)) + 0.0\n",
    "\n",
    "plt.plot(start_data.numpy())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Generate Samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "num_samples = 30000 # number of samples that will be generated\n",
    "sample_rate = 11025\n",
    "out_file = \"generated_samples/saber_10-2-128-32-8.wav\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Generating took 182.8455228805542 seconds.\n"
     ]
    }
   ],
   "source": [
    "from ipywidgets import FloatProgress\n",
    "from IPython.display import display\n",
    "progress = FloatProgress(min=0, max=100)\n",
    "display(progress)\n",
    "\n",
    "def p_callback(i, total):\n",
    "    progress.value += 1\n",
    "\n",
    "tic = time.time()\n",
    "generated_sample = model.fast_generate(num_samples, \n",
    "                                       first_samples=start_data,\n",
    "                                       #first_samples=torch.zeros((1)),\n",
    "                                       progress_callback=p_callback,\n",
    "                                       sampled_generation=True)\n",
    "toc = time.time()\n",
    "print('Generating took {} seconds.'.format(toc-tic))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "window.mpl = {};\n",
       "\n",
       "mpl.get_websocket_type = function() {\n",
       "    if (typeof(WebSocket) !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert('Your browser does not have WebSocket support.' +\n",
       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "              'Firefox 4 and 5 are also supported but you ' +\n",
       "              'have to enable WebSockets in about:config.');\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent = (\n",
       "                \"This browser does not support binary websocket messages. \" +\n",
       "                    \"Performance may be slow.\");\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen =  function () {\n",
       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
       "            fig.send_message(\"send_image_mode\", {});\n",
       "            fig.send_message(\"refresh\", {});\n",
       "        }\n",
       "\n",
       "    this.imageObj.onload = function() {\n",
       "            if (fig.image_mode == 'full') {\n",
       "                // Full images could contain transparency (where diff images\n",
       "                // almost always do), so we need to clear the canvas so that\n",
       "                // there is no ghosting.\n",
       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "            }\n",
       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "        };\n",
       "\n",
       "    this.imageObj.onunload = function() {\n",
       "        this.ws.close();\n",
       "    }\n",
       "\n",
       "    this.ws.onmessage = this._make_on_message_function(this);\n",
       "\n",
       "    this.ondownload = ondownload;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_header = function() {\n",
       "    var titlebar = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width);\n",
       "        canvas.attr('height', height);\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus () {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_message = function(type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function() {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'];\n",
       "    var y0 = fig.canvas.height - msg['y0'];\n",
       "    var x1 = msg['x1'];\n",
       "    var y1 = fig.canvas.height - msg['y1'];\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
       "    var cursor = msg['cursor'];\n",
       "    switch(cursor)\n",
       "    {\n",
       "    case 0:\n",
       "        cursor = 'pointer';\n",
       "        break;\n",
       "    case 1:\n",
       "        cursor = 'default';\n",
       "        break;\n",
       "    case 2:\n",
       "        cursor = 'crosshair';\n",
       "        break;\n",
       "    case 3:\n",
       "        cursor = 'move';\n",
       "        break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = cursor;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message(\"ack\", {});\n",
       "}\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            /* FIXME: We get \"Resource interpreted as Image but\n",
       "             * transferred with MIME type text/plain:\" errors on\n",
       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "             * to be part of the websocket stream */\n",
       "            evt.data.type = \"image/png\";\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src);\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig[\"handle_\" + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "}\n",
       "\n",
       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function(e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e)\n",
       "        e = window.event;\n",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\n",
       "\n",
       "    return {\"x\": x, \"y\": y};\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * http://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys (original) {\n",
       "  return Object.keys(original).reduce(function (obj, key) {\n",
       "    if (typeof original[key] !== 'object')\n",
       "        obj[key] = original[key]\n",
       "    return obj;\n",
       "  }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
       "    var canvas_pos = mpl.findpos(event)\n",
       "\n",
       "    if (name === 'button_press')\n",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x;\n",
       "    var y = canvas_pos.y;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.key_event = function(event, name) {\n",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, {key: value,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
       "    if (name == 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message(\"toolbar_button\", {name: name});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
       "\n",
       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.close = function() {\n",
       "        comm.close()\n",
       "    };\n",
       "    ws.send = function(m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function(msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['data'])\n",
       "    });\n",
       "    return ws;\n",
       "}\n",
       "\n",
       "mpl.mpl_figure_comm = function(comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element.get(0);\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
       "        return;\n",
       "    }\n",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    fig.root.unbind('remove')\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable()\n",
       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
       "    fig.close_ws(fig, msg);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message(\"ack\", {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items){\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('tabindex', 0)\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager)\n",
       "        manager = IPython.keyboard_manager;\n",
       "\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which == 13) {\n",
       "        this.canvas_div.blur();\n",
       "        // select the cell after this one\n",
       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
       "        IPython.notebook.select(index + 1);\n",
       "    }\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.find_output_cell = function(html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i=0; i<ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code'){\n",
       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] == html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "}\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel != null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "                <audio controls=\"controls\" >\n",
       "                    <source src=\"data:audio/wav;base64,UklGRoTqAABXQVZFZm10IBAAAAABAAEAESsAACJWAAACABAAZGF0YWDqAAABnAGOAZT/df8R/03/GwHM/0X/Pf8B/1EB/v8p/yn/JQH6/yn/BQHq/yX/EQH8/y0B+v8j/xsB+P8l/zMB5v8j/w//EQH0AcoB/AHIAcwBsAGKAYIBigGMAcwBvP8l/xEB/v8l/yX/L/8v/wcB4P8rAf4B7v8fAbD/Jf8r/wcB8P8f/yX/HQH8/xv/Jf8R/xX/C/8l/xH/Jf8l/y3/HwHyAAD/KwHqAb4BugHMAdQBgAGKAYoBigGKAYIBggGK/33/Ef8LAeb/Kf8B/0cBwv8j/yf/G/8l/yUB8gGgAZgBigGKAYABigGKAYoBiv8h/wn/Ef8r/x8B0AGyAY4Biv91AeD/J/8LAeL/If8pAfT/M/8ZAcj/M/8PAfz/Ff8HAc7/Ff8d/yX/G/9F/x3/Lf8bAcz/Kf8X/xf/G/9JAf4Bwv8fAdYBygGQAYoBigGCAYoBigGuAbgBggGKAYIBiv91/yUB3P8t/w//B/8jAfoByP8l/xH/G/8X/y3/Lf8j/0v/JQH8/w0B5v8l/xf/Ff8X/xH/If8vAfYBzP91Acz/LQH2AbQBigGKAYoBjAGKAYoBgv91AcwB+P8b/wP/JQH8/x//Jf8b/xUB/AGAAYoBigGKAYoBigGMAYr/ewHMAaz/KwH8Afz/QwH0/wX/H/8f/xkBxAH0/wX/BwGAAYoBjAGKAYoBigGMAfgB1v8p/0UBzP8l/zH/GQH2Afz/MQHc/xEBigGKAYoBigGKAYr/ff8RAfb/G/8nAfgB7v8jAcz/Ef8jAfz/Ef8l/x8B/P8PAdgBgAGCAYgBigGKAYoBigGA/30ByP8X/y//EQHY/wMB6v8h/xv/IwH4/ysB/v8v/ykBzP8zAfoB+AH4/xUB5v8zAfL/HQHM/xkB2AHIAawBigGKAYoBhAGCAbQBigGKAYoBhAGKAYoBigGCAYoBiv8lAeT/G/8vAfj/M/8l/yP/Jf8pAdr/KwH8AdwB5P8R/xv/JQHM/yv/JQH2/yMB3gH8/yP/BQHcAegB/P8LAYABigGKAdj/FwH2/wv/CwH6/yEBzgHY/x3/LQHs/yP/N/8b/xn/IwHE/zP/Cf8jAbr/H/8d/yX/MwGy/xkB/P8tAfIBmAGKAYgBigGEAYIBigGKAZoBigGIAYoBggGKAZ4BigGUAawBhP8l/zP/B/9LAbj/Bf8t/yP/CwGoAdj/K/8V/w//CQG0/xX/Jf8b/wX/Jf8f/y8B8P8VAawB1AHM/x0B8AH6Aeb/M/8tAeYBigGKAYr/FQHs/xf/D/8lAfz/LwHuAfwB4AHU/y//GwHq/yv/J/8b/yn/Sf8z/zP/Q/8zAeIBxAGcAdQBugHMAdz/LwGs/xn/M/85/yUBtAGAAYoBigGKAYoBigGK/xv/Nf8lAAD/H/8NAfoB+v8d/zcB/gH8AbYBiAGKAYoBggGC/xv/Df8N/xX/G/8P/x//If8bAdj/E/8RAcj/H/8NAcwBwAGe/30B4gHO/yn/AQH8/yH/CwH8AfL/Gf8V/xsB/AH4AfIB+v8zAeoB+v8vAbT/H/8f/yX/G/8P/xkB+gH8Aez/Ff8ZAcr/I/8HAeoB5gHCAfgBrgGKAYr/K/9DAeb/RQHq/0f/FQHg/yH/Of8T/yX/JQH8/xUB8gHa/x8B9P8RAfYB6gH0AYABigGuAYoBigGKAYoBiv99/xEB/P8bAfwB6gH6/wcB8v8l/yn/G/8b/yX/Cf8l/ykB6v8rAdYBgAGKAYoBigGKAYr/dQH+/wH/I/8l/yUB6v8zAf7/C/8b/yX/GwHMAfYB/P8bAf4B8P8f/ysBuv8b/xH/AQH8/yX/BQHq/x8B/P8dAdQB8gHe/yv/GwHM/yH/Cf8j/yUBtv8lAe4B0P8VAfj/Jf8zAcz/LQH8/yX/JQAA/ycBzv8L/x//FQHCAcT/JQGAAYoBigGK/2kBzAGC/xf/D/8R/xv/Gf8jAdIB8v8p/yX/FwHuAc7/JwHcAcz/F/8lAer/SQHqAd4B2AHQ/xsB6gHy/yH/JQHy/zP/JQH8/x//Jf8DAeL/GwHq/xEBzAGA/yX/Ff8L/yX/JQHkAcz/JQHWAfL/JQHqAfQBgAGAAYoBrAHy/wv/K/8R/yn/Bf8bAcwBgAGKAaABggGCAYoBigGK/y3/IQGy/x3/Bf8rAer/FwHS/x8B/v8pAfb/Kf8F/yX/KwGYAcQB/P8b/xf/I/8p/zP/BwHy/yUB7P8vAfr/Lf9D/yX/NwHyAa7/Mf8H/yEB+gH8AbT/IQH+/zH/If8TAcj/L/8t/yX/JQHm/xH/JQH8AcwBzAH0AYABggGKAYABigGKAYoBggGKAYoBigGKAYoBgAGCAYIBiv91AfABgAGKAYL/WQH6Afz/Kf8bAfwB+v8lAeoBgP8pAeL/MwHU/x8B6v8lAdb/JQHq/ysB/P8lAeoB/AHM/x8B+v8b/yUB8v8P/xv/G/8h/x//Jf8RAfwB6P8l/yUBgAGKAfgB7v8HAfgB+AG4Ac7/H/8b/w8B7gGAAYr/JwH+/ycByAGK/3UB3AHy/x8B5v8h/xH/DwH8/wn/SQHqAcz/M/8T/yX/IQHe/xv/KQHm/xcB3gHK/ysB+v8dAdgBzP99AfT/Gf8XAcQB5P8l/xsB/P8l/wX/BQH4AdL/MwHM/yMB+P8f/yP/DwH8/ykB/AH6/xv/Gf8l/yn/Jf85/ykBzgGs/y//G/8lAer/JQH4/ykB8gHM/yH/FQH8Ab4BgAGKAYoBigGqAYABigGKAYoBmAG0/x0B5v8t/yX/N/8R/xv/JQHMAcr/GQH6/x//EQHy/xsB5AGqAcz/Ff8l/yX/Bf8lAbr/Jf8l/xsB9v8N/yP/JQHQAaz/H/8b/zP/If89/xX/RQHsAfQB4gH2/zMB6v8TAer/Rf8xAfz/BQHy/zP/Jf8X/xv/H/8b/yX/EQHUAer/G/8l/xX/FQHM/yUBuAGAAYL/df8R/yUB3AHqAfz/GQH4AdT/K/8l/wv/Bf8F/yf/Jf8t/zMB/AHm/yX/EQHgAfT/Df8l/x8BvP8x/zP/Ff8V/yX/If8fAf7/Lf8LAer/F/8fAcz/G/8B/wv/Ef8R/ycB8v8V/xsB/v8Z/wf/G/8zAf4B7gH8Adb/JQHy/yMBzP8XAfYBtP8f/ykB/P8z/xv/HwHq/wv/HwH6/yMB+v8L/xUBtP8z/x8B9P8xAf7/Ef8nAfr/Gf8vAfABvv8bAZb/Jf8ZAe4B+gH6Aer/Bf8z/yv/Ef8F/w//JwH+/ysB/gHc/wkBwgHC/y8B3P8l/yMBgAGY/3v/Ef8lAfL/If8jAfwB1v8l/yX/Ef8tAeoB8gGAAcz/CwHg/yX/CwH0AfIByP8fAfIBsP8zAfj/HwHWAfj/CwHIAfIB0v8n/wv/Jf8p/xUB/P8b/xsB+AH8/xv/Jf8vAeoB9gH8AfIB1v9FAf7/Bf8VAer/G/8b/wf/Ff8r/wn/HQG+/0sB/v8V/zEB/v8l/zP/F/8bAe7/Bf8T/wkB3P8h/xsB6v8Z/xEBzAH6/x3/FQH2/x8B8gG4AYABggGKAYIBigGeAZgBrAHoAej/G/8b/wEB4gH8Afj/MQHs/y//K/8l/0v/GQHq/y0BzAHQ/yn/MQHQ/y3/Jf8PAbABvgH4/x//H/8p/yH/Jf83AfD/M/8l/x//G/8b/w//HwHq/wv/IQHQAYoBigGEAc4B1AG4AdgBtAGC/zEB5gHO/yP/B/8f/z3/JQH4/w0B6v8j/yH/LQHm/yUB/v89AcYBgAGe/xUBzP8L/wv/G/8PAdAB4P8jAcz/JwHW/0EB6v8HAfD/Kf8Z/wUB8P8h/wP/JQHA/w//Ef8v/w//Gf8V/w//C/8jAdz/KQGwAab/Bf8BAer/If8bAf7/G/8VAfL/OQH6AbT/RQH+/xH/Jf8XAfL/GwHy/xv/Kf8LAZwBigGC/3X/Ef8tAc4BvgGaAYoBgAGKAbQBkgG+/x3/Ef8ZAbj/J/8T/xf/G/8XAfr/JQHk/yUB8P8L/yH/K/8FAfwBsv8z/xsBzP8Z/wMB3P8lAfwB7AG+AbL/L/8H/yUB7P8f/3H/G/8n/yn/CwHW/yMB5gHMAYABigGKAYT/fQH+/xsBzgHY/xX/Lf8VAfT/Mf8hAYABigGKAYoBjgGYAYoBlAG6Acz/G/8jAf7/IwH8/wUBtAHq/w3/DQGoAYr/JwGsAYoBvgG0/xcBzAHM/yv/Hf8l/xcB/gHm/ycB3P8v/wsB/v8l/yX/CwG0AZIBlgHO/wsBzP8X/xUB/P8H/wH/D/8l/wUB7v8pAcj/G/8FAdAB4gGYAawBiAGkAZgBigGKAYoBiv8nAer/MwH2/x//JQGs/yX/C/8fAeT/JwHw/wn/Hf8l/w3/Jf81/zsB+AG4/0f/GwGwAYABggGAAawBuAGCAYr/dQHq/xsB7AGw/xsBzgGgAbT/JQHc/yEBrgHq/zP/Jf8FAcz/Of8DAcz/LwHm/yMByAG0/xsB3P8lAfj/JQHQAbr/Jf8l/yX/M/8j/ysB8AGiAYoB+AHqAcwB+AHM/ycB5AHM/xcByP9B/x8B5v8l/wH/C/8xAf4B4AHQ/y0B/AG6AYABigGKAbQBigGKAYoBqP8zAdj/Df8l/ykAAAH8/x//D/8v/wsBuP8zAfYBzP8xAcwB5gH6/x0B/P8vAdj/Kf8Z/w8BzgGy/ycB6v8l/xsB/AHWAfz/K/8l/xsB5v8lAdz/JQHy/wkB+gHk/yUB8P8b/yX/Jf8l/xsByP8p/wH/C/8t/x3/EQH4/0X/BwG8/xv/Df8x/yX/FQHu/wn/A/8lAdABzAHu/yX/Lf8bAfr/GQH4/x3/Lf8RAcz/Kf8dAf7/JQG8AaT/Af8b/xUBsAHkAe7/IQH2Afj/H/8l/xf/DQGAAYD/Lf8FAYABuAHeAfwB5P8lAdABxAH8/yn/Ef8p/zn/G/8r/xv/SQHM/yH/MwHa/0n/GwHU/zP/Jf8F/y//Lf8v/yUBrgHu/xEBogGs/wsB4AGmAZwBrAGg/xUB+AH2AeQBiv8tAfQB7P8lAcgB8v8zAfwBxP8RAeT/LQHuAdwBzAHq/yX/LQHsAbr/LQHw/zn/AwGY/y0BuP9F/xv/JQH8/y//EQH4/y0B+P8V/yH/JQH+/xf/Gf8f/xEB8v8P/yX/G/8HAeoBvgGWAa4BgAGI/3X/LwHS/yUB2P8p/yX/Jf8R/xsBxP8n/ykB6v8z/yX/I/8l/0H/MQHS/w3/JQHk/yUB/v8Z/yX/GwHeAdb/FwH+/yH/FQH8Acz/DwHI/ycB/v8l/xv/M/8b/yX/KQGAAYr/J/8lAbQBugHU/yUB2gG+/x0B0gH4AbT/H/8L/ykB1v8nAcj/GwHI/yn/K/8hAfb/GwHq/x//Jf8lAdYB+P8Z/xP/Jf8R/wn/Jf8l/xMB2P8j/xUB1gGyAYD/df8l/wUB1AHG/yn/Jf8Z/wsBzv8b/xv/CwHg/xkBygHM/ykB+P8n/yP/Jf8l/y8B+AGs/y//Df8ZAfwAAP8BAer/BQHmAbz/MwHgAfz/Qf8VAeT/C/8ZAAD/D/8LAcb/KQHs/yUB/v8HAej/H/83AYD/HwH+/yX/GQGAAbQBkgGAAYoBhAGK/3X/B/8l/0UB4gH8AcgBgP91/yX/Ff8vAdb/N/9DAbgB4v8lAbj/F/8l/yn/If8RAcz/Gf8RAcz/M/8l/yv/I/81/ykBwv8XAer/IQH4/zP/Jf8F/yUB/P8VAdwB+AGu/yf/K/8FAfL/Ef8zAcz/JwH4/x//FQHW/xUB/gHq/yEBzP8lAeoBzP8lAfL/HwHA/y3/JQHU/0kB/gH8/x//Jf8HAbQBkgGKAYoBigHM/0EB7gH8/y3/QwHq/yH/B/8b/ykB/v8n/zP/M/8t/yX/Jf8X/xX/Lf8J/w3/M/8bAbABxP8lAcwBpgGCAYoBtP8nAdr/Bf8bAdL/JQHC/yf/G/8RAfL/Jf8V/zH/LQHoAcz/IwH6/xf/LwHqAfwB6v8f/wUBzv8Z/wP/Kf8n/xsB+gGAAbr/JQHqAeQB+P8pAe7/FQHq/wv/Kf8l/wP/LwAA/zH/Jf8t/xH/MwH4/yf/Jf8R/y0B3P9J/x//Lf8lAb4BtP8f/xMB0gH8AcwBugHo/xv/Df8v/x//H/8V/yUB9gHkAaYBygG6AfwBnAHM/xcByP8lAcYB+AH4AdT/KQHw/y3/JQHu/xv/H/8LAcT/Kf8VAf7/HwH8Afj/Jf8vAewB/v8fAcz/JwHu/zH/CwGAAaD/L/8R/xX/EQHq/yUB7AH8/0v/Jf8LAfz/D/8l/wsB7v8R/yH/G/8NAfr/Lf8PAeQBsv8b/wn/Ff8b/xX/KQH2AcwB1AG6/yX/EwHM/xsB0AGAAYoBggGCAYoBggGmAbQB9AG8AaIB9P8l/w0BtP8X/wv/M/8VAeAB/AHIAfgB4gHQAboBtP8jAeABvv8jAf4Brv81Aer/Jf8l/xf/B/8LAcwBxP8p/yX/AwGwAYABmAGA/0v/HwHy/zkAAAH4AcwBygH4Acj/LQH0AcwBvgH+AbgB/gHMAfgB/P8j/yX/S/8j/z3/M/8vAeb/I/8ZAfD/Df8l/x8B+AH6Acz/DQH4AeoBrP8n/wX/IwHW/xsB6gGwAYoBigGCAYgBigGUAaD/Hf8b/0kB/P8bAdD/GwGAAdABrAG0/y8B0v8L/zkB+v8l/yX/GwG+Afj/JQHkAfj/MQH8/wf/MQHQ/yX/M/85/yMB6AAA/yUB/AGA/x8B6v8tAbYBigGKAYr/HwHcAaz/LwG+/yX/Kf8fAbT/LwHq/y3/CQH+/xn/JQHe/ykB3P8F/yn/B/8j/wP/D/8l/xcB/P8V/xX/HwH2AboBvP8zAf4BzAGw/zMB/v8FAfwB9gH8/x8B8v8lAfj/K/8F/y//FQHQ/xsBzAGA/yUBzP8jAeL/H/8n/yUBvP8pAdD/J/8X/yX/Q/8Z/yUBzP8z/wsB+v8FAbj/F/8rAfoB/P8l/xH/Jf8B/yEB1gGw/yMBzP8bAeT/JQAA/wP/H/8tAfYB5v8L/wv/C/8LAb4Bpv93/yX/Lf9DAeD/I/8LAfIB+P8pAdABsgGAAZgBgAG0AbYBzAGA/xcB5v8v/yMB6v8b/x0B+P8l/x8B6P8lAfQBtgGkAYoBggGMAaz/Jf8v/wX/QQHqAdwBgAG0AYoBmgHUAf4B2P8lAfD/HwHc/y//MwHyAfT/JQH2/xEBgAGKAaIBqAGm/ykB0v8l/yUB6gH0/xv/JQHy/w0B5P8p/xH/DQH8/yf/LQHM/ykB+P8v/yUB9P8bAfgB1P8z/yX/C/8X/wP/H/8lAf7/Ef8l/zMB9v8PAeoBzAGAAbQBqgGAAYr/FwHMAeoB/P8V/wsB6v8Z/yUB7v8tAdYB2P8hAf4B+P8nAer/H/8v/x//M/8pAd7/Lf8L/xcB+P8v/wcBzP8l/xv/Jf8DAbD/FwHmAYAB3gHM/xf/Jf8l/wn/HwHW/xP/JQHIAcwBuAHMAe4BrgG0AfT/C/8R/xsB7gGAAYr/JwHS/xX/AQHYAaYB+gH8/yX/Jf8v/yX/DQHOAb4Bvv8XAcz/Ff8V/x//Jf8h/zP/D/8rAdz/F/8v/wP/Cf8f/wcB9v8lAfAB6v8v/y3/LwHM/zEBvP8j/wX/D/8f/w3/F/8R/y//Of8V/y//C/8d/wEBgAGKAYgBiv97Aer/If9fAcz/Pf8lAcz/GwH+Ae4B4P8hAdb/J/8H/y//JQH+Acj/HwHcAcYBqP8N/yUB2AG8/y0BzP8zAf4B5gHMAf7/N/8l/z3/K/8V/wsBzv8b/w3/MwHU/0H/HQHk/yX/FwHWAar/If8p/wsB/P8p/xX/J/8l/yX/K/8l/xH/GwH+AYD/G/8vAer/IwH8/xv/B/8T/x8B+P8p/yv/Cf8vAfr/G/8bAfwBgAGKAdQB5gHWAc4BzgHuAegBzP8fAf7/Df8J/zP/DQG6/y//PQH6AYABngHaAfwBtAHMAcIBxP81AbwB/P8pAfD/Qf8lAeb/SQH+/xX/Bf8r/w3/JQHWAbr/Kf8l/zn/Ff9BAer/LQHu/zEB9P8l/yUB6v8h/x8B/v8v/xn/FQHuAcwBsP8b/yX/HwH2/xn/J/8p/xv/Jf8F/w//DQH0/yn/B/8v/xsB2AH4/zP/KQH+/yf/Jf8t/y//JQHM/zP/LwH8/yEB9v8rAcz/MwAAAf7/Jf8zAcYB5v8lAbD/Qf8bAf7/Gf8l/w3/Kf8x/wMBrAG4AYoBigGcAYr/HwHq/zn/G/8lAe7/GwHy/yX/Ff8X/zn/EQH+/xv/JQHyAcz/H/8lAfL/Jf8l/y3/Cf8f/w0B6gHQ/yf/LwHW/yX/CwHc/yUBwP8RAfYB/P8l/x3/LQHW/yUB5gGAAbL/Jf8h/wMB/P8n/yX/EQAA/wv/C/8h/yH/J/8BAf7/C/8H/xv/JQHI/xv/JQHS/3UB5AH8Af4BzP8TAcj/LwHWAbwBgP8zAf7/BQHWAcz/JQAA/y8B+AHWAer/G/8BAcz/HwHqAbYB9AHMAfIBugHkAfIB7v8r/xH/E/8P/xEBgAGuAeD/J/8h/xX/F/8N/w//Jf8f/w0B/P8b/xH/Jf8L/yUB5gHO/x8B6gHA/yUBzP8pAboBov9B/y//C/8z/zkB9AHuAbQBiv8n/wMBvgG6Aaz/K/8N/yn/If8lAfwB+P8fAfwBgAGeAYABigGKAbQBzP8b/xH/HQHwAcwB3P8l/xv/G/8DAfz/B/8lAer/JwH6/yP/EQH6/yEBzAGy/y8B6v8fAfoB4v8b/wMB/P8bAbj/Sf8JAfj/F/8l/wv/FQH4Aeb/H/8R/xcB+P8HAf7/JQH+Acz/Jf8l/yv/Cf8l/zMBzP8Z/yX/Ef8h/xEB+P8l/xkB/v8zAb4B3gHk/wX/G/83Aeb/AwHO/yUB/AGAAYoBggGKAcz/R/8JAcL/I/8vAfIBxgGcAYIBgAGC/3cB/v8l/xv/EQH8/yP/KQG4Afz/JQG0/yMBtAGsAdQByv8tAfr/BQH+/yX/G/8RAdz/Kf8pAf7/H/9D/xf/Jf8bAf7/GwHyAYABgP8dAab/H/8b/0P/Ef8lAbL/JQH8Afz/JQH6/xv/FQH0/yUB8P8L/xEB/P8FAewB+P8N/y//BQGwAd7/JQH8/xX/Jf8h/yX/D/8b/x//N/8T/xkB/P8b/xv/Ff8J/xP/F/8j/yn/C/8z/yUB0P8z/zP/DwH4AeT/L/8f/yUB+v8n/y//Ef8R/y3/O/8l/wX/Jf8R/wX/IQH0Afz/FQHsAfwB+P8J/z0B/v8l/wMBtP8rAfz/G/8f/y//Jf8N/yUBxgHyAfIB/AHmAcwB7gHA/yUB5v8f/wH/HwH4/y3/CwH+/y0B5P8lAfr/O/8vAe7/Bf8l/wUBogGAAbQBigGKAYoBtP8h/xv/G/8p/yX/KQH4Abr/Kf8h/yEB4v8t/x8B/gHqAcj/JQH8AfgB9AHMAdIB1P8lAfj/JQHMAcb/Hf85AdwB1v8p/xH/Bf8fAeoB7P8LAfwB8v8JAfwB/v8b/wUB6v8f/yH/MwH2AfgB7AGwAeT/DQHg/xH/MwGAAeQB6gHIAYD/LQG8/x//Ff8f/xH/A/8LAdD/KwH0/yX/Jf8x/wEBzAHC/yUBzAHAAfIBrP8lAbb/Jf8V/yX/K/8H/yUBvv8n/yH/JQH8/xH/Ff8l/yUB9P8J/yH/EwG0AdgBrv8lAf4B5P8b/wX/IQH2/wX/Jf8R/y//Jf8J/xv/GwH8/yv/F/8v/w//Jf8h/ycB/v8RAfb/EQH4/xEB+v8r/wH/HwH2Aer/JQHqAfz/Lf8hAfgB/AHWAfwB/gHW/yMB0v8L/yUB4v8hAeoB6gHuAfwB5gHu/x//H/8R/wkB+P8lAeT/L/8rAf7/H/8f/ysB8AH2/yX/J/8PAbj/Jf8f/wsByP8bAbwB/P8L/wH/H/8f/yEB6v8b/xEB4AGAAfz/Ef8t/xsB6v8R/yX/Jf8l/yUB1AGAAYoBtP8n/wMB6v8f/wP/C/8lAcb/Mf8f/wX/Kf8L/wX/IwHkAeQBrv8vAf7/I/8L/xH/L/8b/wsBzP8lAez/J/8v/yUBsAHM/yUB+v8p/wv/I/8VAeYB6P8NAeoBrP8nAf7/HwGw/xv/J/8f/w3/Lf8RAf7/Gf8R/wn/AQH+Aer/SwHq/zv/Af8R/yX/HwH0/x3/F/8pAfL/Jf8f/zP/B/8b/ykB/P8l/y8BsAHSAfQB+P8p/y0B/gHw/yX/C/8h/ykB+v8lAdoB6AHk/yP/Jf8H/wv/H/8b/yX/GwHoAeT/B/8l/xH/Jf8R/xX/G/8bAfb/GwH+/zH/Ef8R/wn/EQHqAf7/AwHUAaz/JQHe/yEAAAHE/yf/L/8JAer/H/8LAfj/JQH4Abj/MwHM/yUB+v8fAdr/A/8p/wsB8gGq/x3/Gf8l/yUB5v8z/wf/K/8R/xv/Kf8ZAfj/H/8lAcD/If8R/yX/B/8N/wv/Jf8f/xH/Q/8lAcz/SQH2Acj/H/8l/xf/Af8f/xv/Jf81/xX/Jf8l/yUB/P8lAfr/GwH2AfIB/P8l/ycB/gHSAcYBtAHMAcwBzP8z/yX/L/8J/y0B6v8XAbQB/P8vAeoBuAGsAaAB/AAA/xX/Jf8l/xsB7v8N/yX/Jf8N/yUB6gGg/yUB/gHiAbj/H/8l/yX/B/8H/yn/F/8h/xsBvv8VAer/QQH+/xf/Jf8jAcD/JwH2/yX/Ff8f/xX/Jf8b/xsB/AHc/yX/If8lAfr/JwH8AeoBgP93Afz/LwH+/xv/IQHI/xf/CQH4/wn/Jf8XAez/EQH6AeIB9gH8AdwB5gHm/wX/Jf8lAer/FQHM/x//Kf8LAe7/Kf8V/yX/EQGA/y3/JQGm/yP/JQH0/y8B6gHI/x3/Ef8lAcwB+P8V/xH/Bf8b/w0ByP8x/ykB/v8bAfb/GwHM/yX/CwHM/yX/C/8l/xsB0v8V/yUB/gHW/yUB7v8f/xH/Ef8H/yX/D/8bAYABigGwAcYBrv8lAfr/If8h/yX/LwHg/zn/Ef8l/yX/CwHuAfb/I/8H/yn/GwH2/xv/B/8R/zP/JQH+/xsB+v8L/xUBxgGqAegB/AHWAfIBgAG4/x3/CwH4/yX/G/8v/ykB7P8z/xH/C/8j/xkB9v8fAfL/Ff8H/wX/Ef8R/wn/Hf8lAfr/Cf8lAer/CQG6Afj/LQHWAcgAAP8t/yf/G/8l/xv/Ff8VAcz/Qf8VAfz/If8lAfwB0v8b/wsBzP8xAf7/G/8LAcwB9v8RAbgB6gH8/yX/Bf8R/yH/C/8f/yH/M/8LAfwB/v8nAfoB0gH8/xX/Bf8l/wX/IQH8AaL/Kf8F/wX/JQAAAeL/A/8b/wn/AQH6/yn/AQHc/y0B9P8l/yX/LwHo/yH/If8l/wf/KQH4/yn/Jf9J/xv/Kf8l/wX/H/8V/w8B/v8JAfj/Af8l/wX/H/8j/zP/Of8lAeb/Df8Z/wcBgAG6/yUBzAHEAcz/Jf8JAfoB6v8jAfT/F/8Z/wP/F/8j/yUAAP85/yf/E/8l/yUB9v8xAf7/EQHk/wv/Ef8f/xX/Jf8l/xv/Ef8l/yX/Df8X/xUB3AH8Aer/Ef8VAfgB/v8lAbQBgP8dAdb/Jf8l/yX/M/8J/xH/Ff8hAfgB9P8lAfL/Hf8f/xv/FQHMAdT/FQH0/yn/If8h/0X/D/8l/y//C/8h/xH/E/8bAYABgAH2AcwB6v8b/ycB/v8l/wv/Hf8f/wX/G/8b/xH/JQHc/yX/GwHSAc7/Jf8R/x8B9v8VAfr/Jf8vAfgBzP8pAer/IQHEAcz/JQHq/x//F/8lAfz/GwHY/ykB6gHS/wsBzP8F/zP/Jf8Z/yUB5P8d/yX/IwH8/ykB/v8lAfABvv8V/yUB/P8RAfYB9v8l/xP/Jf8FAfj/JQGA/ycB6v8b/xv/GwHm/xP/IQH0/0P/EQGAAYD/HwHMAYABtP8n/yUB/v8f/xEBzP8bAdwB+P8nAer/BQG0Aaz/G/8l/wf/Lf87/w//MwH4/x//Jf8l/xH/Gf8B/yX/JQHu/yUB+P8l/wH/IwHq/wsB+P8LAf4B+P8VAf4B+P85/yX/C/8b/wv/C/8hAfIB6P8b/xH/Ff8RAa7/F/8NAfwB3v8t/ycB3AHyAfz/JwHcAfwBzAHMAcAB4gGAAYoBigGKAYr/JwHm/yX/If8lAcz/I/8hAfj/Ff8l/zP/Kf8P/zMB2v8bAe7/F/8b/yX/Af8LAeIBzAHwAe4B7gHs/yX/F/8T/xv/If8R/x8B6v8V/yUB9P8t/yf/If8lAfj/H/8LAfwB/v8l/xH/M/8RAbz/F/8N/x8BvAH8Aej/G/8L/xf/Jf8VAej/A/8v/wsBygH4/x0B8P83Afb/Jf8f/zX/Df8F/yn/KQH8/xv/Jf8l/yMB/v8lAfoBgAGs/yUB0v8lAbgB9v8b/yX/If8Z/wX/FwH2Aer/G/8JAeoB6P8d/xUB9P8d/x8B+P8n/xsB1v8l/wv/HwHcAfYB9P8l/xH/EQHM/wcB3P8v/wcAAP8RAa7/Mf8J/yX/PQHS/xf/Jf8L/y8B/gGA/ycB4AG8/yf/Jf8L/yX/Jf8lAer/JQH2Afz/FQH4AbQBugG0AbwBgAHMAb4B1AHU/x3/Mf8l/zP/KQHO/xsBgP8n/xUB1v8nAf4B+P8l/z8B/P8p/xn/Cf8DAcIBzAHWAbD/Af8lAaoBzP8X/y//A/8H/x8B+v8b/x8B1P8TAfz/CwHSAbD/CwH8AdL/If8B/xn/Jf8p/yX/Df8jAfz/If8N/yX/Bf8l/zMB8P8r/wv/L/8N/wH/Jf8l/x//J/8Z/yEB/v8P/yH/A/8nAfwB/v8V/yv/CwHIAcz/J/8R/x8B+P8n/wP/BQHw/yX/JQH4/yEB5AG+/yX/J/8lAcz/JQHMAcz/JQH4Acz/HwHM/ycB/P8R/w3/Jf8BAdb/BQH0Adz/Ef8v/x//Jf8RAf7/Ef8b/xX/L/8lAer/A/8bAeT/H/8RAbABtAHq/yUBtv8X/x//H/8f/zf/G/8hAfb/Df8D/xH/GwHeAfwB/gG+/xX/HwGq/x//Cf8N/yf/Df8v/yX/Gf8lAdwB9v8z/yH/N/8RAbj/J/8pAbT/LwH+AewBzP8hAf7/Af8l/xv/Kf8tAfL/Jf8l/yX/G/8l/xv/JQHWAeT/C/8TAfr/IQH+/xv/Jf8lAbj/IwHq/wH/Jf8fAb4BuP8l/xsB1gH8Acj/Ff8vAf7/If8V/xX/B/8h/yEB9AH8/yf/GQHa/yf/C/8jAfj/H/8z/yH/Jf8l/zX/I/8l/wP/Ff8RAdL/EQH4/yUB8gG0AfoB/v8V/yUB6gHW/yn/Jf8f/y3/EQH4/yX/G/8lAe7/H/8N/yX/Ef8f/x//CwH2AeD/C/8lAfL/C/8X/x0B5gHi/wf/B/8bAdz/JQH+/xsB+AHSAcwBzAH6/xEBtAHo/xv/EQHW/wcBtP9B/yUB/AH4/yf/G/8rAf4BwP9nAf4B/P8v/wUB+v8j/yEB+gH4/xv/Ef8v/yX/IwHu/yP/Jf8L/x//C/8z/xv/E/8L/xP/Jf8l/xH/B/8X/xH/H/8lAfr/JwHq/0n/Bf8j/yP/JQH4/x3/JQH4Ae4B+P8BAeT/LwH8/wv/G/8l/xH/Ef8l/wP/H/8V/xsB5v8l/yUB4P8V/wn/D/8v/xH/I/8lAcAB4gGi/yX/J/8l/wH/Jf8l/yUB9AG6/yf/G/8l/xv/G/8lAf4B+AH+/zcB9P8rAfYBgAHk/x8B6gG+AaABzgG6Afj/Ef8RAbD/Af8hAf7/Jf8V/wf/Jf8V/x8B/P8fAfz/JwHw/yf/Jf8R/yP/Jf8v/wUBvv8r/xsB+v8j/wv/DwHO/ycB5v8l/y3/C/8f/yX/Af8v/xv/Jf8t/xH/AwH6AeoBwP8HAfj/G/8bAfD/JQH8/xX/HQH0/wX/HwHq/yX/Bf8l/wH/C/8bAe7/Jf8lAegBgAGAAYoBggG4AY4BkgGo/3sB/v8h/xsBsP8fAfwB/P8rAfz/I/8z/xsB/AH6/xv/If8z/wv/Jf8H/xcB6AG0/3UB0gH4/x//GwH4/yX/Kf8H/yUB+P8l/w3/C/8JAfz/HwHm/wn/Jf8l/yX/Ef8z/xP/Jf8HAeoB6v8R/yX/M/8R/y0B/P87/yn/H/8RAfb/H/8b/wUB/gH0/y8B3AH4Aej/J/8XAdoB1v8n/yEBzP8f/yX/B/8l/yUB/P8pAfQBzP8p/wv/Df8bAf7/Cf8l/wcBgP8t/wv/F/8fAcT/H/8fAez/Jf8lAcj/H/8H/yv/Gf8hAf7/Jf8l/yX/CQH0/xf/Qf8X/yH/IQHuAcwAAAGwAYABggGoAa4BzAHIAYoBtAHYAbT/J/8b/wn/GwH4/yP/Jf8H/zP/JQH8/x3/EQHuAe7/AQH8/y//Ef8X/y//Jf8b/yn/Af8F/yX/L/81/zv/B/8b/x//L/8N/yX/BwGs/yX/B/8l/yX/FQAA/yX/Cf8bAf7/Sf8L/yv/Df8r/x//KQHqAcgB3P8fAdz/HQAA/0X/Jf8z/yX/G/8h/xH/JQH+/yUB8v8hAAD/K/8v/wv/HwH4/yX/H/8N/yX/Cf8HAfj/CQHyAdb/Jf8z/xkBzgG8/wv/Jf8LAfwBwP8t/w//MQHyAfz/F/8N/xv/Jf8R/xcB/v8B/yX/C/8f/xUB9P8RAfT/Jf8h/x3/DQH0/xcBwP8lAeT/J/8h/ycB8v8rAfj/EQGy/yX/BwHm/yX/AQH0/yX/Jf8fAc7/K/8f/yX/JQHq/xv/EwH6AdL/E/8lAAD/M/8lAeD/F/8H/wcB7P8N/wP/Qf8h/yX/Bf8B/xUB9v8R/yH/Cf8b/yX/Jf8X/x8B3v8nAer/EQHqAfb/CwH2/xH/Kf8b/wv/I/8J/zH/F/8V/x0B0v8l/xn/J/8vAe7/If8l/wf/D/8l/x//H/8V/wv/GwHm/xv/H/8l/y//JQHcAdT/JQHI/xUBgP8p/yf/KwH4/y//GwHo/xUB/v8v/xn/C/8fAfQB8v8pAf7/LwG6AbQBrAG6/zEB3P8p/wv/H/8R/yX/DQH4/xUAAP8f/wUAAAHM/yn/Cf8h/yUB/v8f/yv/JQHw/yUB7P8f/w8B+P8b/yH/Ef8F/x//Ef8bAer/If8D/zEBzv8l/wkBzP8n/yX/G/8j/wv/Ef8lAYD/awH8/yP/Mf8R/x3/Hf8l/xv/Jf8F/ycByP8nAdr/Jf8R/yX/M/8v/yX/Af8h/xv/Jf8z/yX/B/8F/xf/L/8l/xv/Jf8V/yX/G/8L/xv/H/8b/y8BzAH4AeoB5P8bAdoBnAGKAbT/JQHMAc7/KQH0AbT/FQG0/yX/OQG4/wn/GwG4/yf/Jf8pAcwB6P8j/yUB6v8Z/wf/A/8LAe7/Ef8b/xX/LwHI/x//Ef8l/wf/A/8XAcz/If8B/w3/JQH+/yX/M/8XAfr/Jf8LAe7/Bf8LAfQB0P8l/wEB+P8f/xH/Hf8X/zkB6v8X/wv/Cf8pAf4B/P8bAfz/HwGsAZj/J/8pAer/CwH+/xUB/P8H/0n/BQH4AYABgP8n/xEB4v8d/xX/FwHM/wX/Ff8lAcz/LwH4Afj/GwHS/xX/Ff8B/xv/Jf8n/xf/K/8VAfT/If8L/yMB+v8LAfoB+v8X/yUBrAHQAfT/GQHMAbj/MQHg/yn/KQG2Aej/LwHyAYAB+AHi/yn/BwG+AbT/JQHW/y//C/8X/yX/Kf8d/xv/C/8ZAfL/Gf8d/yX/IQH+/xX/Jf8f/y3/Df8l/xv/J/8p/y//KQHqAYAB/P8LAboBzAG6Acz/FwH4/yf/KQHuAfz/F/8L/yX/C/8V/xX/G/8X/wsB/P8f/wf/JQHyAfz/JwHmAdz/MwH8/wsB5v8l/xf/JQGuAb4B4gHWAboB3gHmAd4B7P8v/yX/EQHI/x0BsAG+AfQB6gHM/ysB1gHm/yX/JQHwAcwBrP8b/ykB5P8R/yX/MwH8/yUAAP8DAeQBgP8v/xP/Bf8l/xn/KwHcAcQB0P8BAfb/SwHq/yEBtP8V/yH/Jf8b/zP/KQH6/x//FQH8/ykB+P8L/yUB7gG+/yH/JQHAAa7/D/8zAcwBwv8vAcz/Hf8b/y3/Jf8v/xv/Af8l/zP/Jf8vAer/H/8fAeYBrP8n/xUB1v8D/xf/A/8H/y//IwH8AfT/If8l/w3/I/8nAer/Df8lAf7/H/8l/ykBuAHMAYD/JQHuAfz/Sf8l/y//Jf8l/yX/OwHg/ycB/P8p/xv/Jf8lAfz/B/8l/x8B9gHI/yUBzAG8/w8BzAG6AYABrv8dAe7/JQHmAfAB/P8b/wUB+gGAAaz/CwH8/yX/Jf8f/xf/If8l/w//B/8h/wf/G/8P/yH/Ff8l/x//K/8R/yn/Jf8H/xH/If8l/xsB+AG+/xf/Df8p/xv/BwH8/yUB+AG6/zH/Ff8T/xcB/P8d/xX/Ff8FAbr/M/8NAer/Jf8NAfz/H/8p/w3/N/8v/xX/G/9JAfb/Jf8f/x//BwHg/xX/Kf8lAfr/FQH+/yn/JQHsAcwBvv8l/x//L/8LAdj/Lf8bAdD/If8l/xsB0P8VAfL/Lf8B/yUB/v8lAdj/JQG8AbT/Jf8f/x//G/8n/yUB+P8l/wH/C/8R/yUB+P8f/wH/Jf8lAcz/Kf8jAdYBsgHMAfIB6P9B/wv/C/8l/zkB/v8X/yP/Jf8bAez/Kf8r/xH/J/8p/yX/Jf8bAe4BgAH4/wP/Cf8P/zP/Jf8R/yX/Jf8VAfz/Df8L/ycB9AG6/xv/CwH8/xf/JQHq/w3/JQHMAfT/G/8b/xf/L/8f/xEB4P8L/xn/JwHkAeb/M/8j/wv/EwHmAaD/MQHo/yUByP8f/xsBgAHUAer/N/8D/xsB+v8n/zP/CQGA/yX/D/8vAfT/Jf8P/yEB6v8Z/xEB/v9JAf7/A/8l/yX/G/8b/wsB6v8L/yX/B/8l/w3/Kf8j/yUB/v8T/x3/CwH0/wv/E/8Z/w3/Ef8zAfYBzAGAAYoBigGC/3UB4P8x/yUB+v8l/y//Jf8N/xsBvAGw/yUB1AGAAb4BtAHmAcwB/AHgAeT/F/8TAf7/Lf8lAfYByP8h/w//GQH6AfT/F/8lAfr/Jf8PAfb/J/8zAcz/Jf8R/ycB/AHW/yX/G/8V/yUAAP8D/wv/N/8F/xf/Jf8BAfz/Jf8R/yUB9v8lAeQBuAHK/yf/Ef8l/xH/G/8p/wH/M/8j/wX/JQGA/y8B/gH4/zH/Ef8J/yP/GwH6/w//If8H/xv/FwH0/yX/Kf8bAfz/C/8bAar/Af8l/xH/If8l/xUB5P8b/ysB3P8l/ykB/AGAAb7/AwHe/x8Bvv8z/yn/H/8b/yv/Jf8l/wsB6v8v/wf/Df8b/wEB7v8h/wMB+P8J/wcAAP8X/wkBzAGkAfIB3P8n/xH/If8P/xf/Jf8b/w3/H/8DAYD/Lf8F/zP/LQHiAb4BzP8l/xH/JQHO/wv/MQHiAbT/HwHSAeoBzv8bAdYB/P8b/yUB/gHo/wEBzP8n/xsBwgG0AYD/J/8l/x0B+AH8Afz/Jf8l/yX/AQHMAfj/A/8NAe7/Bf8f/yX/OQHq/y8B5v8J/yUBuP8n/yX/Jf8J/xn/Af8j/yX/H/8R/yX/Ef8lAfr/Cf8l/yX/Lf8VAfz/Bf8R/xv/Gf8tAf4BzAG6/ykB6v8FAc7/LwH+Af7/EQHYAeoBzgG0AYABigGKAZwBzAG0AeYB+P8pAeb/Kf8F/xX/H/8b/x8B2P8X/y8BtAG+/x8B6gHYAcgBugH0/xsBzAGA/yf/F/8j/xEB/v8f/yf/Jf8L/yv/IwHqAe7/L/8z/yX/Jf8FAf4ByAH+/x8B5v8l/wsB/v8f/wMB/P8L/0n/J/8fAf7/K/8V/wsB/gHG/yUB1v8f/xEB6v8fAfr/JQHM/yX/FQHm/xX/JQAAAfgB6v8V/xUAAAHkAfz/A/8n/yn/Jf8lAfr/Ff8bAeoB3v8l/x8B/gHi/yUB+P8F/wv/Cf8n/xUBuP8v/yf/JQHW/yf/C/8ZAf4B+AHWAcz/J/8VAeoB+AHMAf7/G/8lAfz/H/8R/x//JQHM/xH/Cf8L/yX/B/8f/xH/Ef8n/w3/MQH8Afj/Jf8R/wf/Ff8lAf7/Ef8fAdL/GwHMAYAB5P8Z/wv/KQG4AYD/JQH6/wX/Kf8l/w8B2P8f/yX/JQHoAcT/M/8l/x//Jf8R/yX/Jf8v/yX/Ef8RAf7/Ef8N/yX/EQHy/yMB9P8fAfIB0gGAAYD/AwHMAboBvgG+Aez/C/8b/yUB+P9B/wsB/P9L/wH/F/83/yX/L/8HAdABsP8f/yX/Ef8l/x//If8P/wMBsv8z/x0ByP8j/wf/If8LAer/IQHSAcQBvgHSAfIB1v8lAfz/G/8j/yX/FQHI/y8B9AH4Adz/M/8bAcD/Jf8D/yX/DwH8/x//JQH6Aeb/MwH+/wMB/gH4Ab7/HwH2AfL/GwHi/yX/BwHMAez/Q/8l/xv/H/8R/xv/H/8l/yUB/v8XAeL/JQGAAYr/Ff8HAeb/Jf8l/wsBzP8l/yH/CwHyAer/M/8P/yX/Jf8v/yUB6gHe/ycB6v8VAf7/Af8lAfz/JwHC/ykB/v8v/yUB4v8//wX/H/8l/zf/Bf8R/yn/Jf8r/wUByP8t/w3/Ff8H/x//D/8v/yUB+P8l/w//C/8RAcgBuP8p/wcB6v8bAfr/G/8N/xEBzP8d/xv/H/8b/xn/If8b/wn/H/8l/xX/BwGAAcYBsAG6/ycB8AHK/w3/Df8J/xv/Lf8N/x8B/P8P/xv/BwHI/ycB9v8L/y8B8v8RAfz/JQH8/w//JQHOAYD/BQH4/wf/J/8p/yUB3AH2/xP/A/8n/yX/FwHq/yX/EQH6/xsB/P8z/y8B0v8b/xv/F/8V/xX/EQH+/x0B+gH0/wv/FQG6/yUB/P8lAYABiv8JAeD/Cf8lAer/F/8l/xX/Ff8l/xX/Bf8jAer/F/8L/wn/B/8l/wv/A/8v/xv/Jf8fAfj/G/8x/yX/Jf8X/xH/Ff8XAf4B7v8Z/y//G/8V/wn/GwH6Acz/C/8n/yX/Ef8h/yX/L/8D/xH/J/8X/xH/Kf8l/ysAAP8RAAD/Ff8D/wH/K/8b/wn/H/8LAeT/GwH+Afr/Hf8R/zH/C/8F/y0B9P8t/yv/L/8TAfAB+AH6AfL/JQHiAfb/Hf8RAer/M/8j/wH/Q/8V/yX/Af8d/ykB/P8Z/xv/J/8L/xX/K/8lAfb/GwHu/yf/JQHI/yf/LwHM/yX/If8l/xH/EwHq/yf/IQHA/yUB/v8l/zP/EQH4/wf/FwHq/w//Ff8l/zP/C/8b/xf/GwH+/xUB1v8lAfYB7P8lAfwB/AHkAZgBuv8bAfIB6v8z/xH/Df8R/xsB/gHMAcwBsv8dAcQBtAH+Acz/JQH0AfT/Jf8L/xf/C/8F/xEB+P8r/wv/CwHIAdz/G/8l/yUB+v8lAdb/H/8n/wn/D/8b/w//Kf8pAAD/Af8ZAfz/EQH6Afj/Jf8l/yX/B/8nAfj/A/8l/yUB5v8H/w3/G/8lAfr/Df8tAYABgP8hAdIBsP8HAf7/Jf8RAAAB4P8L/ykB/P8l/xH/H/8lAfb/Jf8l/xEBzP8f/0sB8P8J/yEB8AH4/yX/Af8lAcz/JwHg/yX/JQHM/x//Jf8lAf7/KQHk/yX/JQHc/yP/JQH0/zH/If8BAfz/BQHG/w0BgP8f/xEBzAHSAfz/Ff8lAd7/L/8V/xX/G/8l/wP/JQHS/xv/KQH8/yP/Jf8d/yH/E/8X/xH/F/8l/yf/Of8V/wMB9v8FAfz/D/8T/xH/Ef8J/yH/Jf8b/wf/Cf8H/xv/L/8f/yUB/v8ZAfwBugHY/yf/FQH6/yUBgP8z/xH/Jf8b/wn/Ef8FAfj/BwHMAcgBwP8r/wsBsAH4Aer/C/8H/yf/L/8z/xH/G/8b/yX/Kf8JAdj/H/8l/yUB/gHq/yX/Jf8L/xv/E/8X/xP/L/9JAfb/K/8n/wn/HwH8/wn/J/8l/xH/G/8fAfz/G/8bAbwB/P8B/xMB7P8h/yX/E/8v/wv/E/8lAfz/J/8xAfj/C/8p/xH/Kf81/yUB9v8h/yX/C/8l/yn/Jf8H/wn/LwH6/wf/JQH+/yEBgP8nAfr/GwGg/xv/CQH0Abj/G/8bAfj/E/8D/yX/LwHqAfoB/P8V/wcB/P8L/yH/JQH+/yUB0gHc/x//Kf8R/y//G/8f/yH/Lf8jAfT/Ef8J/wEB9P8L/0H/Ff8h/y3/Ef8F/y8B/P8bAeT/L/8H/yEB6P9BAeYB5v8n/yX/Af8l/x//Af8lAf7/IQHq/xf/L/8lAfD/Bf8l/xUB/P8l/yX/Ef8fAfz/F/8v/y//CQH4/xv/G/8XAf7/MQHqAfgB6v8R/xX/CwH2AdgB7gG8AfgB8v8lAf7/JQHuAfj/IQHq/xUB/v8b/wcBoP8t/yf/HwHM/x//D/8vAfD/FQHcAfr/Af8F/wP/G/8X/wsB+AH0AYABiv8p/z8B/v8h/xv/Jf8L/xX/B/8l/xH/IwH4/x8BgAHMAcABzAHEAcz/JwGwAbj/IQHm/yX/JQHw/wP/Bf8bAfb/Jf8B/zP/G/8H/wEBtP8lAf4Biv8j/wf/Af8l/yX/Jf8l/wv/Hf8bAfABvv8l/zH/Jf8rAe7/Jf8b/yX/L/8l/wX/IQHE/wsByP8l/xUB/AHq/w//Cf8f/yX/If8vAdz/Jf8zAfr/G/8j/x//C/8X/wf/BwH4AfL/A/8T/wv/DwH4/yH/Af8b/zP/Ef8l/x8B/P8p/x//M/8h/wv/L/8LAcD/J/8B/y8B/P8l/zX/Kf85/yX/Ef8J/zX/Ef8R/xv/JQHw/wP/H/8l/xUB+v8l/xX/H/8l/yX/KwH6/yf/H/8J/yMBsP8f/xEB/v8V/xf/EQH4/xUB/gHu/yX/JQH4/y3/G/8LAboBgP8nAf7/Ff8P/x8B/gG+/yf/Jf8L/ykB8gG+/yUB3P8R/wv/H/8l/yX/G/8lAdb/G/8nAdb/GwH2Adz/H/8P/wX/Ff8T/wkB6gH6/yUB/v8lAez/JQH+/yX/L/8l/yv/Jf8X/x0B/v8J/wH/H/8v/wH/JQHeAfT/Ff8v/wf/E/8JAeb/HwHq/wv/AQHM/wUAAP8X/xv/G/8h/wv/J/8V/xX/H/8BAeoB5v8bAbQBxAHk/y8B+gH+AdAB+AH+AZwBgAGKAYoBgv93Af7/Jf8l/yP/JQHq/x3/CQHM/yX/EwHQ/yn/Jf8F/w3/Jf8T/wf/Kf8LAdb/If8bAer/JQHc/zH/Kf8fAfoBgP8XAfj/H/8l/x8B9P8p/xH/Kf8f/x//Jf8l/xcB6P8F/y//C/8H/xEB3P8L/yX/G/8RAd7/Ff8b/xX/Ff8l/wP/H/8X/yX/Ef8L/y//B/8R/wn/H/8XAeoAAP8N/xn/D/8j/x//G/8J/xv/G/8R/yH/EQHq/xv/BQHM/wv/FwHcAc7/AQH6/yH/EQHM/x8B/AH4/xMB9P8fAf7/JQH2/ycB/P8L/xv/G/8BAeT/CQHu/wH/JQH+/x//JQHM/xcB0gHM/xv/F/8N/xv/B/8f/0n/Of8P/wH/Af8t/0kBzP8d/yUB5v8X/xsBzP8nAez/JQH2AfgB1v8ZAeAB5AHqAeQB7v8bAbr/J/8v/yX/G/8b/xH/GwH+/zEB+v8f/xf/Jf8j/x//JQHu/x//Gf8V/xsB/gH4Afb/EQHM/yP/Jf8TAfb/EQHuAfT/BQHu/wsB3AGAAbT/FwHE/wkB/gH+Afj/CwH8/y//L/8NAfr/Jf8V/ysB6gHq/yP/G/8l/yUB8v8l/yP/GwHoAfz/MQHIAcT/Jf8l/yEBxv8fAeT/Kf8P/xf/L/8N/yX/Bf8HAfb/JQH8/yUB/P8f/yUB0P8bAfz/D/8l/x//Lf8F/xsB1v8rAfz/IQH+AeYBuP8b/xH/G/8l/xP/If8//xH/DwHW/x8B9gH0/w0BrP8f/wEB+AHc/y//Ff8l/y//Bf8X/x//M/8x/wn/C/8r/xv/JQHq/z8ByP8dAfwB2v8L/xv/Ff8l/xH/GwHs/w//Gf8b/wv/Ef8d/x//I/8lAfj/Jf8T/x8B+AAAAfj/CwG+/0H/BwHU/wkBzP8fAdz/G/8RAeT/Hf8z/xv/C/8RAe7/EQHqAAABpv8f/yUB/v8L/wn/Kf8B/wUBwAH4/xf/H/8f/yX/Cf8L/wsB+AH4AfwB/P8l/yn/D/8r/xUBvv8lAer/If8R/yn/G/8h/yX/Hf8HAe4BsAG6AcQBzgHsAbr/Mf8R/yn/Of8l/yEB7AHS/yX/Bf8f/xEBzAG0Ac4BuAHMAbQBgP93/wf/Kf9B/xsB7gH8AeoB0v8bAcwB1P8pAdb/Jf8H/yf/Ff8L/xv/Jf8H/yn/JQG2Acz/QQHM/xn/Jf8lAcL/JQHA/xv/Af8R/yX/G/8p/xv/M/85Afj/Of8R/xH/If8rAdb/Jf8f/xH/Jf8b/z8B/P8Z/wsB7gHO/wH/JQH0/yX/Af8j/x//G/85Afr/C/8f/yX/Ff8r/xEB+P8f/yH/JQHwAfgBuAHq/y8B9v8b/w0B0v8dAbwBzP8HAcz/H/8l/xEB/P8x/xv/BQH+/wX/H/8l/yX/Jf8R/xEBwv8nAeb/E/8F/yUB1gHu/xEB5AHy/w//S/8JAfz/JQHy/yP/CwG4Ae4Bxv8n/wX/KQH4/yEB9AHoAAD/G/8l/wUBrP8nAAD/HwG6AYD/HwHyAfz/Jf8pAfL/LwHW/x3/EQH8/xEBtv8XAer/LwHq/yX/C/8fAfL/Nf8h/wP/I/8l/wv/CQHuAYAB3AH8AcwBuAHQAYABiv8TAcz/Bf8X/x//Jf8f/yX/EQH8AfD/Ff8l/yX/A/8f/yUB7v8bAcwBrP8pAer/HwH6/xX/Jf8p/wP/EQH4AfgB+P8f/yUB8v9J/yP/JwHAAdT/EQH+AeoBuv8T/xX/JQH+/yUB9v8l/yX/Jf8bAdwB+P8vAf4B+P8l/w//HwH8Afz/Ff8HAfj/JQHo/x//Jf8lAdb/G/8B/x//Jf8l/1n/Jf8lAbD/DQAA/yn/Jf8D/xv/Bf8lAfr/JQH6/yX/Jf8L/x//GwHu/xH/Jf8l/wH/GwH6/wf/H/8l/yUB/v8r/x8B9gH4/zP/K/8fAfL/Af9L/wcB+P8lAfb/H/8b/x//Af8lAeT/E/8LAbwB4P8lAeAB5P8x/wf/GwHw/x8AAAHsAe4B/P8lAdIBgP8b/xsB+P8RAeb/Jf8JAf7/Ff8F/yEB6AGA/ycBgP8n/yX/H/8lAfb/If8pAfj/Cf8h/yH/C/8h/yX/GwG+Ac7/Af8j/wv/DQHqAfIB6v8DAfz/L/8lAfwBzP8rAf7/AQH+Ae7/C/8R/wH/L/8b/y//L/8H/xsB1P8l/xH/GwH+/yX/Af8p/zf/Df8L/x8B6v8h/zMB7v8FAcwB6P8b/yUB7P8l/xkB5P8l/yUB+v8rAe4B/gHS/0EB4gHM/ycB/v8D/x//GwG2/yX/IQHq/w0BuP8lAf4B8gH+/wv/Bf8l/xH/Hf8lAfwB7v8l/yUBzP8b/yX/CwGA/yH/IQH+/yP/Df8F/yX/Ef8DAf7/H/8b/y//C/8b/yX/Gf8F/xv/Jf8f/xX/BQH+Afz/JQHW/zP/BQHiAeT/Ef8l/xv/Ef8L/yUB/v8f/wH/Bf8R/x//BwH6/yn/BwHy/yX/If8fAez/GwHuAeb/GwHY/ykB9P8J/w8B+v8pAeT/C/8tAer/Bf8hAfIBxv8x/yUB3P8f/xkBzP8fAfL/MQH+Af7/LwG0AcT/EwHq/yf/Jf8l/wsB5AHk/x8BuP8bAeoBuv8h/x//Ef8B/ysB+P8f/xUBuv8pAfz/Jf8X/yUBwv83/yP/I/8v/xH/H/8z/xH/Jf8L/xf/HwH+AcQBtAHMAcwBzAHMAdYBzgH4AdwBtAG0/xUB3P8L/yn/A/8NAcz/C/8H/yUB9P8l/yP/F/8fAfr/Jf85Adz/GwHM/yX/Jf8b/yn/GwG2/ycB2P8X/xX/GwH8/w//C/8vAc7/G/8H/xv/Af8R/yEBmv8n/wMBtAGwAaABrP8nAYAB/P8XAfD/FwH+/ykB+P8l/w0B3P8b/y//Bf8l/x8B/P8p/wf/HwH4/x//Ef8vAf7/LQH6/wP/Jf8RAc7/H/8r/wX/BwHY/xv/Lf9L/wEB/P8t/yX/JQHm/x//Cf8h/yUB/P8R/yEB9P8pAf7/Ff8lAc4BgP8xAcwBgAHM/yX/Jf8l/wP/LwHy/w3/JQH+/wEB/v8LAdb/Jf8P/yUB1v8z/yX/Ef8l/wX/Gf8lAcz/Jf8b/xv/F/8l/x//I/8x/y//JQH8Afz/SwH+Afb/JQAA/yX/Af8H/yX/Jf8l/yX/JQHe/yH/BQH6/xUB5v8h/yf/LwH6AbgBgAGA/zH/BwHS/xUB+v8p/zMB4P8L/yn/NQHqAfT/JQH+/xv/GwHSAbD/Jf8lAeL/Hf8hAdb/Df8l/yX/GwH8/wv/C/8r/yH/H/8v/wX/C/8l/xX/Jf8lAf4BzgH8Aer/H/8b/wH/Jf8R/y8B3AHyAfwB1gHIAf7/J/8lAf7/JQH2/yX/B/8RAYD/Kf8R/xEBwP8T/y3/G/8lAfz/Jf8lAb4BsAGcAYoBtAHOAfgBgP8x/xX/Gf8l/yX/H/8N/zf/LQH+/xEB/gH+Aer/Jf8hAf7/JQH+/wUB/gH6/yn/A/8HAf7/Ef8jAf7/QwH8/wP/FwH8AbIB2AHy/yUBzAGcAbr/J/8/Ad4Buv8p/w0BrAGA/3cBuP8n/wv/J/8PAbT/Df8bAer/FQH8/yX/KQHu/xv/J/8bAej/GwGwAYABngHMAYoBigGsAbQBrAGAAYoB5gH4/yEB/v8P/yX/Af8T/xH/G/8J/yH/Cf8fAfT/Af8h/xP/H/8dAfj/LQH+/wX/OQHu/wX/BwHI/x//GwH6AbD/Jf85Adr/EwHSAbj/Jf8lAc7/CQHqAcT/Jf8Z/yn/BQGkAcz/JwHc/yUB/gG4/wn/G/8lAfr/Ff8LAbz/GwHOAdz/KwHYAfj/Kf93Af4B+v8xAf7/G/8V/wsB/P8l/wX/G/8lAfT/Jf8l/yn/H/8L/yH/L/8l/wEB0P8nAcwBgAGgAZgBigGsAcwBvgG0AbQBtAGoAZz/J/8l/yX/Af8l/wn/DQHM/xsB7gHW/x3/If8lAfr/H/8N/xsB/AGwAboBzP8n/xv/C/8bAc7/Hf8X/yX/H/8V/wH/Lf8lAeoBzP8nAfz/G/8fAf4BtP8f/w0B9v8dAdT/M/8hAfr/C/8l/wH/C/8bAdL/Kf8hAfz/HQHg/w0B6AHO/ykB+v8j/xH/If8l/wcB1v8V/wf/B/8l/yX/G/8LAfj/CwH0/yX/DQH8/x8BzAHu/yX/G/8LAez/HQH4/xX/MwHq/y3/HQH8/xf/H/8R/yX/G/8xAfYB/P8b/y8B9AG6/yP/Jf8p/yMB/v8lAf7/Nf8l/yX/Af8z/xv/Jf8B/y0BvAHU/xH/A/8l/w8B8v8t/zn/Ef8b/xv/JQH4/xUBzP8nAbj/BQH+AfgBgAG4AZwBlv8T/yUAAP8V/xX/JQH8/yf/Ef8f/x//DQH4/yX/AQHq/ycB+gHYAbT/JQHq/w3/Af8l/wkBzAH8Adz/J/8R/xn/H/8L/xv/Jf8F/xn/L/8L/w3/Jf8bAeD/Ff85Adb/L/8h/wEB6v8bAfL/Jf8b/wX/Kf8l/yX/LQHM/x8AAAH8/wH/EQH2/yX/If8B/wX/Hf8x/x//KQH4Afz/Ef8L/wv/I/8f/wX/Bf8l/xEB9P8RAdwB/P8VAfj/Jf8F/wX/Jf8P/y3/If8BAfj/JQHS/yX/GwHkAfgB+gHk/wkB8gHy/ycB/v8t/xkB/v8v/wUB5P8dAf7/M/8n/w//IQHk/xf/JQH+Acz/Bf8B/x//DwHuAcwB/P8X/yX/Jf8R/yn/GwHIAfz/Gf8J/xX/E/8j/yUB3AGs/yn/Jf8LAe7/KQHq/yX/Bf8lAeT/Kf8HAdL/I/8f/wcB6v8p/yX/If8J/yn/GwHM/yH/L/8HAfT/H/8H/ykB6v8V/yMB/P8bAeoB/AHu/xsB/P8pAf7/G/83/yX/Jf85AAD/Cf8lAAD/JwH+/wX/Jf8b/xX/Jf8f/yUB9AH8/yX/CwHs/x8B6gH8Afj/Mf8lAer/CwGA/yX/FQH6/ykB/v8RAbr/JQH6/x3/Jf8lAfj/JQAA/xP/C/8nAe4B2P8f/x//HQG4/xUB6gGAAYoB0v8p/x3/Ff8H/xv/Jf8R/zMB3AG6/yf/Jf8R/wv/FQHq/xv/IQGAAb7/LwHy/zP/Jf8J/ysB/v8f/yUBxv8hAf7/GwH4/yX/GwHyAfD/E/8l/w3/Jf8lAf4B/P8fAeD/H/8BAfoB5AH8/zn/HwHI/yX/IQH2/0H/JQHg/yEB8AHW/x//B/8j/yX/JQHKAfj/G/8HAfgByP8XAcL/Jf8b/yX/D/8L/yH/Kf8H/yH/B/8V/xv/H/8n/yX/Cf8L/xX/If8jAbwBzP8z/zP/H/8V/yX/M/8lAfz/JQH+/xX/Gf8HAeYB/P8jAfT/Kf8j/wH/JQHq/w8BzP8lAf7/Lf8f/wn/FQAAAboBzP8p/wUBgAGq/3cB0gHa/x8B+P8N/yX/B/8ZAfz/F/8j/yn/G/8l/yf/C/8LAeT/EQH8AdYB9v8V/wP/G/8l/yX/Cf8l/w3/G/8F/yX/JQAAAcgBzv8l/xH/FQHqAc7/B/8NAfL/DQHk/zEB+P8l/xsB9AHo/xsB1gHMAYD/df8R/wf/G/8h/yP/A/8p/xH/G/81/wX/IwH8/yn/B/8f/wH/G/8VAeoBuP8lAfr/AwG4Ac7/Mf8HAfYBgAGY/x//FQH8Ac7/M/8T/xf/Jf8l/yX/DQH+Afz/L/8lAbj/E/8l/xsB+AH2/y0Bxv8pAe4B8v8XAcz/G/8h/yX/Jf8b/ycB6v8jAf7/C/8h/wcB8gHiAcT/GwH+/zX/JQHYAfj/MwH4/yH/IQH4Afz/GwH8/y8B/v8RAfgB6v8fAcABnAG4AaD/JwHYAfQB1gH8/yX/Ef8D/wv/If8T/x//J/8F/xsB7gG6/wUB7gHU/wv/JQH+/yH/B/83/xEB/P8F/wH/Jf8bAfwB+AH8/zH/Df8T/zv/Ef8R/yX/BQH+/yf/F/8b/yn/EQH8/x3/Cf8XAf7/C/8HAfwB9P8xAfr/GwHwAfwBzAGAAaoBzAHsAdL/JQH+/xX/H/8b/yn/Jf8ZAfz/Gf8l/y//F/8RAfwB+AHM/x0B/gHM/yUB+P8f/y8B+P8hAfz/PQHq/yX/L/8B/xf/G/8lAeAB9P8Z/yf/JwHq/xv/H/8v/yUB0v8D/xP/B/8nAfgB+P8RAAD/SwHq/zH/HwHWAagB+P83AeL/IwH8/y//If8Z/yv/Gf8H/yX/EQH2/x8B/P8b/yUB/AHM/y//Ef8b/yX/J/8R/yf/DwGAAYD/JwH6Acz/G/8l/xEB1v8L/yH/B/8RAdj/Df8H/yUBuP8F/w3/Jf8F/y8B+P8bAfj/Jf8H/yUB9AHc/zP/Ef8XAfQBugG+Aaj/FwHq/yn/H/8L/yX/HwHuAeT/Jf8X/yX/Ef8V/xn/BwHM/xcB8gGAAdQBvgG2/x//Kf8D/xv/KQHu/yX/JQH4/xv/B/8l/wv/BQH8AYABgAGsAeYBvgG4/x3/BwHWAer/If8v/xX/Bf8lAfgB/AH4/yUB/v8b/y0BrgH2AdL/EQGAAZgBiv8n/wsB9v8DAf4B6v8LAer/GwH+Ae7/L/8fAfr/If8PAbz/KwH+/xv/Ef8h/wsB+v8l/yn/Jf8v/1X/Jf8l/x//Jf8R/yUB1v8l/yP/Jf8H/xf/G/8TAcz/CwHo/yUB/v8X/xH/IQH+/xf/L/8R/x//B/8h/xcB7P8X/xv/Ef8V/xX/G/8l/xf/G/8FAfj/JQHmAfj/M/8l/wf/J/8R/wv/Jf8d/yP/Bf8zAer/FwHyAcwBrgHOAbT/Hf8XAcz/MwHa/yH/G/8l/xv/G/8RAeQB+P8vAf7/H/8R/yX/H/8R/yX/JQHu/xX/H/8Z/xf/Af8LAdD/Jf8LAf7/H/8R/y3/Ef8fAfr/Ff8l/xcB+P8J/wX/BQHMAbQBzv8x/wf/HQH8/xH/CwHM/wv/BQH4AfgB/gHg/wv/G/8N/wP/J/8b/xH/LwH8/x0B2P8b/wv/AQHM/xUB+P8hAfwBugH4Afb/G/8f/yEB/P8X/yUB/v8p/xf/J/8F/xH/Mf8R/yUB9v8bAdz/CwH8/y8B3P8l/x8B/AHU/x8B/gHq/w0AAAGu/ysB/AH6/wUBzAGA/x//HwHgAaIB+P8f/yUB+P8f/ycB+v8hAc4B6v8X/yX/G/8xAfT/Jf8V/y//C/8l/w3/I/8XAc7/FQH6/yf/Jf8l/x//B/8l/yn/Jf8f/yUB3AHU/wf/C/8j/yf/I/8p/xX/Cf8lAer/I/8l/wEBzv8lAb7/JQHc/xv/KQH4/xv/GwG8AfD/I/8bAfz/Jf8vAf4B+P8l/xsB0v8l/yUB9gH8/wn/IwH8/yX/B/8p/wf/JQG8/yH/L/8R/wH/GwH2/ycB+AHu/yX/Ff8lAe7/LQH+/xsB+gHkAbT/Kf8L/xv/Df8n/wf/Jf8bAf7/J/8lAeD/HwG6/x8B+v8l/wX/EQG6Afj/If8b/w3/Of8BAfj/Ff8l/xX/B/8pAf7/BQGu/yX/EQH4Aer/Jf8RAer/CQH4/yv/C/8P/xv/Jf8P/w0BgAGKAYIBzAHm/xX/B/8l/wn/J/8H/zP/DwH0/wX/G/8PAe7/Af8v/wsB7gH8/zUB/v9f/w3/FwHmAcwB9v8FAdwB+v8lAer/G/8l/yUB+AH4/zP/JQH4/xv/Of8R/wn/JQGsAawBrv8FAeoBpAH4Af7/F/8D/wv/BQH6/wv/LwHw/yX/Jf8l/wv/J/8R/xH/Cf8R/yUBtgGAAYoBigG+AaD/JwHs/yP/Jf8RAeoBzP8NAeT/Hf8l/yH/G/8XAfoB6v8b/xH/LQHW/xEBtgH2/xcB6v8z/xH/Bf8b/wsB/P8pAfYBxAHS/x//C/8H/wv/G/8RAfQB/P8V/w0B9AH0/ycB/P8p/xn/J/8r/xH/If8NAeL/Lf8R/wP/BwH6/xH/HQH+/xsB+v8b/y8B/AH0AewBzAGAAb4BzAHW/yUBzP8f/xH/G/8X/z//Hf8H/xEBugG+Afj/Jf8TAeb/J/8l/wf/K/8z/xv/Jf8pAfL/JQH6/zP/Of8l/xn/G/8p/x//Jf8rAcz/Mf8l/wX/Jf8p/yX/I/8R/yf/H/8l/wP/Jf8l/x//G/8B/yUB/v8V/xX/CwHu/ysB+AH4Ac4Bsv8zAeAB+AHM/y//Jf8fAeT/L/8BAeQBgAGKAdwBzgGuAawBtP8f/wf/HwH0/yX/S/8bAfgB/v8l/y//Ff8BAAAB9P8vAAD/J/8R/yH/JQHsAfj/FwH+/yX/Jf8n/wMB/gH4/xf/IwHg/yUB/v8fAbL/HwHc/yX/Lf8N/x//Ef8bAfz/Kf8lAfz/Ff8l/wX/DQHo/wv/Ef8lAeT/G/8L/wH/C/8V/xsBgP8p/wv/G/8b/x8B+P8F/yv/G/8f/yEB/P8h/zP/Hf8n/wX/Jf8lAYD/Af8l/xEB+gHy/wn/Ef8v/yn/J/8R/yUBwP8j/ycBtAGAAa7/Bf8BAcwBsP8d/w//Df8l/xH/G/8F/xv/LQH+/x//G/8b/xH/GwH8/x//H/8pAdABuv8LAeoB/P8r/wcB5v8lAfYBvgHOAcAB5gGsAbQBtAG0/yUB0v8lAeoB+AHc/zEB1gHM/yX/C/8nAfwBuv8FAfj/Ef8lAe7/G/8B/yUB/AH6/yUB8P8L/w3/BwHuAf7/Jf8l/x//I/8XAab/Jf8b/w0B6v8z/wv/JwH6/wH/Gf8b/xsB/P8lAcz/Jf8f/xH/Jf8BAfz/C/8V/wv/E/8V/yX/G/8lAfz/If8r/yH/EQH0/xf/KwH+/zkB3AHM/yX/C/8R/yUB/P8h/zkB/gHy/zH/If8N/ycB/v8X/yX/H/8lAer/C/8f/wf/Cf8j/xsB6v8lAdz/IQH4AcwAAAG4AcQBgAG6Ad4B/P8nAfz/C/8f/yUBzP8h/zcB5v8r/xv/If8b/yUB9AHSAcb/JQH4/yf/Jf8f/xv/D/8f/yP/JQAA/yX/EwH6Afj/JwHgAfwB1P8RAf7/LwH4/yX/CQHc/yX/Df8X/x//Ef8RAAAB/v8F/y//EQH+/y3/Jf8V/xMB3P8n/yX/JQHy/yH/G/8l/yX/KwG2/yX/H/8b/ykBzP8tAcz/F/8RAer/Df8rAf4BzP8L/wf/Kf8b/yX/Af8R/yH/Df8l/wcB6v8pAf7/DQH0Afz/G/8LAAD/C/8b/xv/M/8J/wcByP8xAf7/Jf8l/xUB9P8LAewB8v8h/xP/Jf8Z/x//BQG4/xf/IwHy/x8B8AH2/yUB9P8tAeIB/AH4Af7/C/8l/xH/Ef8b/yX/Df8L/wv/F/8f/yX/I/8bAfL/H/8b/xf/Kf8HAfwB+v8F/x//L/8p/zMB4AGA/zMB/v8X/wv/Jf8LAeT/K/8V/xH/JQHM/yUB8P8t/yUB+gHq/xn/I/8pAf7/HwH0/zn/I/8B/xH/G/8n/yH/Jf8dAdr/JQHk/yUB/P8l/x//If8lAfr/L/8hAfT/Ff8l/x//AwG0AfL/Kf8b/yMB+P8f/x3/HwH2/xcB0v8l/xsB5P8XAf7/HwH8AeD/IQH8/wv/C/8b/wkB6v8vAcT/Lf8b/yUB9P8f/wsB6gH8/wkB6v8X/wf/CwH8/xn/Ff8l/wUB+AHqAfj/JQHy/x8B7P8f/xv/K/8l/xX/Jf8j/xsAAP8lAf7/Af8RAf7/IQH4/x//GQAA/wn/Kf8tAf7/L/8z/wsB9P8f/xsB8gH8/wf/JQH8Afz/CQHkAYABnP8l/yP/JQH+/x3/Af8r/ysB3P8b/x8B+P8r/zn/Jf85/x8B5P8v/yX/GwG6/zMB9v8r/w0B1gHM/xcB3AHM/wv/Bf8b/wH/KwH6Afr/HwAA/x8BgP8f/wv/Jf8p/yP/Kf8lAdb/Jf8lAfj/K/8R/yX/Jf8l/yUB6v8LAc4B1v8BAf4B1gHeAdj/FwHs/wMB8P8x/wcB9v8h/x//G/8l/zP/JQHM/zEB+gG+/w0B6v8X/yUB/gGAAbz/Jf8l/xH/Ef8l/yn/HQGAAbT/KQHMAbIB1gGs/zP/Jf8V/xUBuP8J/yUB+P8lAeD/Jf8l/yf/Ff8l/xv/H/8V/y//Af8nAdz/A/8V/x8B/P8b/wn/C/8lAdj/FQH8/yX/DQGs/yn/Jf8lAcgAAP8b/yn/Jf8R/xn/Jf8vAe7/G/8pAer/If8FAboBugH6/wUB3P8XAfQB/P8X/yX/Ef8d/xH/Gf8fAeoB6gH8/yH/Ef9f/xEB/gHmAbb/KQH+AfIBzv8f/wX/Of8H/yUB4AH4/x8B8gH8AfL/CwHW/ycB+P8d/y3/Ef8h/wn/FQH6AeQB5P8n/ykBgAGK/yX/J/8l/yX/LwG4/zP/Df8lAfAB+P8b/x//BwH8/xEB/v8l/x//B/8pAeABzP8r/xcB8v8fAAD/B/8vAfL/L/8R/yX/Lf8R/xX/BwHm/x//GwH4/yMB+AH4/xv/CwH8/xv/AQHoAej/IQHq/wv/GwAA/xX/G/8v/y//Jf8V/yUB/AH0/yEBzP8xAeT/Jf8PAdD/B/8l/xv/I/8bAf7/C/8f/x//Ff8f/wkB7gH4/wkB5P8FAcwBzAHMAe7/KQHMAYAB+P8D/yX/JQH0/yH/Gf8VAfgB+P9BAer/A/8V/xsB+P8l/w3/IQHE/yf/Ef8b/w//JQHMAfz/If8L/xX/Bf8R/yv/Kf8Z/yP/Jf8h/wsBsAGA/0sB6gHkAc7/IQHc/y//AQH4/yH/CwH8/xf/G/8VAf7/A/8l/xv/GwHq/x//B/8b/yX/Cf8V/xH/Lf8b/yX/Bf8X/w3/Hf8fAeT/HwHiAej/CwH8AeoB6gHM/yX/G/8H/xH/Jf8p/x//J/8lAfD/Ff8l/xv/Ff8R/x8B6v8fAeD/F/8lAe7/G/8b/xcB9AHAAAD/BQH+AdwB0AHuAcwBvAHAAdT/J/8R/x3/H/8h/x8B4AH4/yUB0P8r/xkB0v8X/wkB/P8JAdz/G/8V/yX/Af8jAdIB4v8F/xX/If8T/xX/Df8l/w3/Jf8B/zMB/P8V/xX/Jf8P/yEB+gHq/xEB8AHkAcz/FQG4Acz/Jf8R/y8BtgHM/yn/Jf8h/yX/Jf8bAcgBzP8LAfj/Gf8F/x//JQHS/yH/H/8B/0EB5v8p/y8B/v8b/wX/KQHq/wf/Ef8L/xsB/gHMAYABiv93Aer/F/8pAfz/B/8V/wH/Lf8B/yX/C/8h/xH/Jf8v/yX/J/8j/yX/F/8z/wH/J/8l/wv/Af8l/xEB+P8FAe4B+P8bAeQB6gH+/xX/EQH+Aez/JQHm/xf/LwHI/xX/Af8lAfj/JQH8Adb/HwHk/zP/Ef8p/zMBrP8p/wf/Ff9L/xX/H/8p/yX/Bf8lAf7/H/8z/wX/H/8F/y//B/8n/w//F/8lAer/Kf8RAfgB/v8N/zP/Jf8X/xH/DwHu/zf/C/8fAf7/Jf8l/yf/JQH0/ysB/gHMAYABxAHk/xf/CwHG/ycB/P8R/xH/If8RAcD/EwH+/ykB/AHmAfYBuP8F/xH/D/8lAfL/Jf8b/wv/JwH+/yX/Jf8tAcD/K/8XAfD/Af8X/y3/Jf8lAfz/JQHqAbgBzP8f/yMBzP8lAer/J/8R/yX/Af8t/yX/Cf8P/wsB+AHOAboB6AGiAeD/JQHq/wv/Kf85/yH/JQHm/y//HQH8AdwBuv8ZAf4BsP8l/wf/Jf8l/yUB/P8l/yX/L/8b/yUB1v8z/0X/B/8L/wsB/v8p/xv/Jf8F/xX/C/8P/xEB/v8lAdL/Jf8LAeoBxv8lAcz/H/8rAfz/H/8l/yX/HwHq/yMB/P8L/wUB+v8L/wEBtAH4/wf/A/8d/wv/Gf9D/yX/BwHCAYABsgH8/yUBvgG0/w3/Jf8tAf7/G/8bAeoBuv8rAcgB+AH+/xv/H/8Z/yUB/v8l/yUB/AGAAaABov8hAcz/EQHc/yX/Af8fAdb/I/8b/yX/Ff8F/xX/Jf8H/yX/KwHqAfwBuv8f/y//Jf8l/xX/MwH6Afr/Jf8B/x//B/8TAf7/Kf8lAcz/Jf8bAb7/Mf8BAdb/H/8RAdz/HwHqAez/Jf8l/wkB7AGA/wn/CwGwAcwBvAG+Afj/Af8BAcwBzP8NAfQB3P8l/y//Kf8V/w0B+v8Z/yX/Kf8b/xn/Jf8f/xH/Jf8D/w0BtP8lAbr/H/8l/wUB/P8lAYD/K/8LAcz/MQH+/wf/G/8h/y//FQH0/xv/Jf8V/xsB8v8p/wX/C/8R/yUB+P8f/yUAAP8d/yUB8gHeAa4BxgG0/xcBuP8F/x8BtP8rAdb/Jf8f/zP/JQH0/w3/K/8j/xH/JwHO/yn/R/8X/yP/JQH8/zP/GQH8/yX/Ff8n/yUB4AH8/y3/BQHqAfoB+v8l/xv/A/8fAfj/Jf8L/yUB5AHSAfwB/gH0/xX/IQHW/x8BzP8f/wEBzAG0AYABigGCAaD/CwH+/xEB7P8NAfb/LwHg/yn/Jf8jAfz/Jf8RAfj/JQGA/yn/IQH+AeoB8P8b/yX/Ff8b/x//L/8N/wH/JQHyAcwBvgHu/yUB6gG8AagBmP8n/wv/Jf8f/yX/LwHq/xv/Ef8f/wv/Cf8R/xv/Df8b/xX/Jf8fAfYB9v8b/xEBgP8lAfT/Jf8b/xUB+v8H/wn/Bf8f/xv/JQHqAcz/KwH+Afr/Ef8DAcAB3AHk/yX/HwH8/x//Jf8PAAD/C/8l/0sB+gH4/yX/D/8XAf4B9P8zAf7/JQAA/ykB8gHM/x8B5AH4Afj/BwHq/yv/B/8lAdIB6P8V/xH/Kf8p/xUB6v8j/yUB9P8l/yX/CwH8Afb/Hf8lAeb/Cf8v/yP/DQG6/y0B9gH4/yn/GwHk/xv/Hf8f/zP/Jf8Z/zn/Cf9D/xH/Lf8NAdL/Mf8RAegBzP8pAAAB6v8lAdwB9P8p/wH/Kf8b/wUB/P8H/xv/GwHM/yP/Jf8v/yX/LwHqAfT/JQH+/wv/B/8L/ycB6gGY/zEB/v8FAer/CwHI/x//C/8D/x0B/P8X/ykAAP8t/yX/Cf8bAfYB/gH6Afb/BwHwAcQB7P8V/w0B+P8jAfwB5P8f/ysB+AHq/yUB6v8FAf4BgP8dAfQB9v8l/yX/Bf8l/yUB+v8b/x0BzP8r/yH/J/8bAfwBgAGKAbQBgAGKAe7/JQH4/yEB4P8RAf7/SQHqAdL/I/8R/xEB5P8XAfz/G/8LAfT/EQH8Acz/Jf8lAcz/CQHgAfj/Af8l/xX/Ff8lAf7/Pf8pAeb/H/8R/ykB7v8f/yH/Ef8XAcT/J/8h/yUB/AH0AZgBsAHuAbwBzAHmAeD/Q/8H/xv/B/8p/xf/GwGAAZj/MwH+/xX/D/8l/ykB/v8R/yEB/gHy/w3/FQHm/x8B+AH4/xUB3P9BAer/EQHo/xv/BQH4/wsB+P8f/yX/A/8d/xf/Jf8LAez/C/8hAf7/IQGA/yX/Jf8R/xX/HwHq/w3/A/8T/xH/Q/8LAeb/I/8H/wH/Jf8RAfj/Jf8l/x//Df8HAeoB5v81AfoB/P8lAf4B2P8b/x8B/AH+/wEB+v8bAfIBuv8lAcz/F/8t/wH/D/8fAf7/HwHkAfQB/AH+Ad7/JQH+/yn/GwH6/y3/C/8l/xf/Ef8l/x//BQG6/yEB9AH8AeoBzP8PAeb/F/8l/wf/Ef8RAfj/Jf8t/xv/J/8l/xH/Jf8RAer/Ff8lAeT/K/85/wP/JQH+/w0B+P8b/w3/FwAA/xsB5AHY/x//Jf8pAdz/Jf8j/xf/J/8l/wv/Jf8r/x0B5gH8/yX/Ef8V/xcBzP9JAf4B6gAA/x//Af8lAer/Gf8D/y//Jf8VAbD/Jf8B/xsB/AGAAYoBugGs/xX/B/8l/wf/C/8b/yUB8AHe/x8B7AHMAAAB/gHeAfIB+P8l/xUB1v8f/x8B/v8n/yX/Ef8h/wUB6v8n/wsB9v8f/yX/GwH2AeoBgP8lAer/B/8VAcz/J/8lAfj/IwH0/yX/If8RAfj/H/8RAcwBgAG0AcwB0AG6AYABgAGCAcz/If8l/yv/Ef8B/yX/E/8l/yn/Jf8lAcz/N/8l/x8B6v8f/xX/Ef8f/yX/Ef81/wH/H/8H/wP/IQH6/yH/FQHe/yX/A/8JAfb/FwH8Adj/Ef8bAfz/F/8h/wf/FQH6/wsB3gH4Afj/Jf8J/x//GwH4/ykB/v8X/xH/G/8l/yUB+v8h/xv/AQHI/xv/Df8V/yX/Kf8hAer/H/8lAdwB6v8l/xUB8v8R/x//Jf8pAfj/M/8RAfIB/v8j/yH/B/8fAfoB+AHw/wsB+AHMAdwB9P8T/yX/Jf8P/yX/Kf8l/x8B+P8n/xv/Jf8l/yMB+AHkAdL/GQHM/wEBmAGAAYIB3gG+AeD/JQHuAcz/Ef8j/yX/L/8v/xH/QQHq/zP/Ff8z/xv/G/8lAfj/Bf8p/yX/FQHS/xv/Ef8l/yUBgP8L/yX/DQH8AfgB+P8H/yX/JQH8/x8B/gGAAfz/F/8fAe7/IQH+AfT/Cf8lAeT/LQH+/xcB4P8Z/wcB+gHqAfAB7v8N/x//JQHcAbz/PQHQ/xcB7gH4/yv/Ef8b/x3/B/8X/xX/Bf8l/wcBvP8FAfgB+v8ZAfL/Ff8vAcz/J/8R/yX/Pf8p/y//EQH8/xf/Kf8RAaD/G/8LAcwB/P8f/xv/Jf8L/yX/KwHY/yX/If8l/yH/KwHM/y3/Ef8f/wP/FwHUAej/CwGqAZwB8AGg/xcB6gHM/x//Ef8l/xEBuv8n/w0B/AH+/yX/Jf8l/xsB2gH4/yUB/gHyAfwB8v8j/xEB6v8pAf7/M/8p/x8B+v8p/yX/JQHsAfz/HwHcAeD/Jf8vAfz/Kf8BAfwB9gGw/x//If8l/y3/KQH8Ac7/Ff8RAfL/Lf8LAfL/Ef8T/xMB7AHYAYAB6AHMAbwBxgG6AbgBuAHkAcb/JQHS/wEB8gHkAfr/JQHu/yn/I/8R/xf/Ff8t/xX/KwH2/xv/LQHc/xv/JQH+Adz/CwH8AdD/G/8l/xUB0v8l/yX/Jf8b/wH/Ef8L/yX/EQHq/yH/Kf8BAcgBsAHs/wsByAHUAbgBpAH+/w0B3v8j/y0B8P8t/wMB/AH4/wf/Bf8XAcL/LwHq/x8B/P8p/wf/KQH4/yMB9v8J/x0BgAGKAcwB0v8LAeb/Jf8zAeT/J/8PAcr/Ef8L/x//HwHm/yH/DwH2/yX/H/8lAeAB+P8R/xsB5P8p/wkB+P8H/yUB7gH8/yX/H/8l/wsB0P8lAcgBgAHcAa4BtAGu/yUB+AHM/y3/MQH6/wf/Jf8t/yX/K/8l/y8B0v8f/xsBzP9LAf7/KQH2/yUB8v8z/xf/CQHkAbgB0v8lAcQBzP8h/yX/EQGA/xP/GwHM/yUB+AHW/yX/JQG8AcT/K/8R/xEB/P8fAfT/F/8N/yH/IQH6/yUB/P8n/wf/GwHkAAD/Jf8D/xsB/gH+/xEB9v8j/yX/Jf8b/wEB8v8z/xsB3AH6/x0B+AH4/yUB/v8LAf4B9gH+/yX/CQGAAdQBgP8j/wH/JQH6AfwB+AHuAcj/C/8lAer/Lf8b/xv/Ef8T/xX/C/8PAfr/Jf8l/ycB5AHk/yH/JQH+Afz/Jf8V/w3/Ff8ZAcwBrAGyAawBrAHMAYoBigGKAc4BzAGw/yP/Kf8lAfwBuAG6AeYB/P8l/wP/If8J/x//G/8p/yEB9P8b/yEB+v8f/xEB+gH+/yUB5AH6/xX/Jf8vAf7/C/8f/xsB/P8lAcwBsP8dAdYBzAGA/yf/JQHM/yX/Gf8l/xn/B/8bAcT/Kf8bAbr/J/8p/wkB6v8bAer/Lf8hAdL/MQHwAfb/Gf8N/xv/Ef8l/yUB1v8F/yEBzAHMAfgB6v8h/xv/B/8p/wv/Jf8l/yX/B/8B/yH/C/8FAfr/C/8R/x8BzP8bAfb/F/8n/w8B5AGwAcz/Bf8l/xsB/P8n/xv/Gf8//xH/Ef8D/wf/F/8JAe7/Cf8lAfj/If8X/y//F/8T/wX/O/8L/x8B7v8RAfT/IQHWAer/G/8VAdIBzP8lAeD/JwHWAfb/HwHW/xH/JQH2/x//Jf8X/wEBqP8HAcz/JQH8Afj/Jf8XAAD/Hf8F/xf/JQH+/yf/Jf8PAfz/Jf8N/wn/J/8bAfYB9v8b/yX/DwH0/yX/Jf8L/x//Jf8l/xUBtP8n/wH/H/8j/xkBgP9B/yX/G/8F/x3/D/8FAd4BzP8lAfz/CwHmAfz/IwAAAf7/JQHk/y//G/8bAfL/G/8T/y//Af8LAbj/Lf8l/w//JQHy/x//KQH8Afj/Jf8RAfoBuAG8/ycB+v8zAer/Ff8l/wf/L/8R/wX/Ef8T/ycBzP8l/zP/B/8X/x3/G/8VAfz/I/8bAfT/Jf8R/yEB+P8l/wf/FwHo/zH/H/8R/y//B/8V/xv/Jf8b/wX/EQHm/wsBzP8hAfr/I/8l/wMB/v8vAfb/G/8f/wf/Bf8l/xv/Bf8FAdwB9P8tAf7/H/8L/yX/Jf8l/zEB+v8lAdD/Jf8R/yX/Of8l/yn/GwH+AeL/DQH2/wf/F/8v/y8B+gGc/yUB9v8l/wf/JQHM/wH/KQHM/x0B9gHAAfgB5gHu/yUBzAHm/x8B5AHgAb7/H/8l/xv/D/8p/yX/GwG+/x//BwH+AcgBuAG0/yf/S/8R/yH/DQH8/xX/I/8l/wf/FwH6Ab4B+P8FAcj/H/8b/yX/C/8n/wv/MwH6/xcB+P8p/ysBgP8n/xUB/P8nAf7/Kf8V/yP/D/8n/x//HwH6Aer/KQHM/yUB6v8n/xv/C/8bAf7/Kf87/yX/IQH+Ab7/KQG4/zH/B/8bAfT/Q/8lAAD/AwHc/wv/Jf8LAfQBugGAAboB5AHSAbYBxAHQAeT/Bf8LAfz/Kf8f/w3/L/8p/xv/G/8V/wv/H/8l/yX/B/8l/wf/FQHc/yn/F/8n/wMBzAHY/w3/Ef8dAfQB+P8V/wkB+P8N/y8B7gH4/zP/FwHq/xH/EQH+/xX/GwH+AYABlP8pAdYB/AHi/xsB/P8nAbYBgAGu/x0BuP8nAf4B3P8VAfwBuAHMAb7/F/8zAf7/Kf8lAfIB/P8j/wX/JQHM/x//Ff8l/xH/EQGw/wn/If8FAfz/G/8f/xsB5P8f/xcBzP8b/xv/B/8R/yUB9v8N/wUB6v8f/wv/LQHM/ycB3P8lAf7/Jf8vAeb/If8j/xH/GwGs/z3/B/8b/wf/F/8Z/yX/Bf8r/y//L/8f/wv/DQHwAcwB8P8J/yUB/v8F/yH/GwH8/x0B/v8lAcT/CwAA/yH/L/8D/ysB5v8R/yX/CQHyAfgB+P8b/wv/G/8f/yX/Ef9B/x//EQHy/yUB8AHM/xsBzAGa/yUB7P8dAfIB+v8lAdL/CwG0/wP/KQHkAAD/A/8b/wv/H/8fAYAB+P8l/yn/JQHqAfj/Jf8J/wkB/v8f/xEB/v8h/yX/Ef8V/xH/CwHmAcz/JQHW/0EB8AGA/x3/Jf8XAeYBzP8f/yMBsv8n/yn/Lf8l/xUB4gHk/x8B5P8b/yH/MwHyAer/EQH8/y//DwH4AawBigH4/xsB+AGc/y3/Bf8v/xEBxv8fAYAB/P8VAer/KQH6/wf/Jf8vAeoB8P8tAfj/Af8b/xP/Jf8b/1v/Ff8l/zn/Ff8f/x//Bf8p/yH/H/8x/03/JQGk/xX/Ef8l/xn/C/8l/x//GwHqAer/If8LAfz/JQG6/yf/Ef8f/wf/I/8bAfIBzP8bAfz/Jf8b/xv/Jf8N/yUB8AHk/yf/BwHy/x8BzAH4/y8Bwv8b/xv/Ff8H/yP/Jf8hAfz/JQH2AfD/HQH+/wf/FQH6/yv/M/8b/wsB/v8R/xH/Bf8D/yUB/P8L/zP/JwH+/yEB4gHq/wX/BwHu/wkB0gGK/zH/Jf8p/xsB8v8l/ycB8P8hAf7/JQH0/yUB/v8X/yX/GwHCAfz/D/8DAf4B+v8p/xH/Jf8lAfj/F/8hAc7/JQHaAc7/M/8L/yv/G/8f/w3/Kf8xAf7/I/8h/xsAAP8X/yX/Jf8vAb7/LwH8AYABigGAAcwB+AHMAeQB4P8l/yUB7AHS/yUB5P8l/wn/G/8h/yX/Ff8p/x8B6v8nAeQB/P8V/yX/GwH4/yX/EQH6/yP/Jf8l/yX/C/8R/xX/Ef8z/xH/GQH4/yX/Cf9J/xP/Kf8lAfz/Jf8RAcwB7v8vAeYB6P8l/xv/CwGA/yH/Jf8ZAfgB9P8p/xH/Jf8l/wX/Gf8J/yUB6v8L/x//G/8f/wX/FwH+/yX/B/8lAeb/IQHM/yUB6gHm/y3/JQHw/yn/Ff8V/y8ByP8fAfABsv8l/xsB0P8l/yH/Ff8H/wf/Ff8l/yX/Jf8H/wn/H/8RAf4B7gGAAcwBqgGsAbIBrAHY/x3/Ff8HAf7/CwHMAYD/G/8l/yX/Ef8L/x0B5v8bAcz/J/8L/y8B2AHo/yf/Bf8p/xH/Jf8B/x//LwHu/yv/IwHW/yX/L/8F/yUB+v8l/y8B+v8z/yX/LwHS/w0B3P8l/wsB5v8l/xP/Jf8F/yUB/AH6/yn/CwH8/yP/Ef8XAfz/Af85/wf/Jf8HAf7/NQH8Ab7/M/8lAeb/F/8RAcwBgP8VAbgBgAGKAZz/HwHM/yf/JQHSAeb/FwH+/yf/GwH8Afj/Af8XAf7/H/8tAfAAAAH0AeoB+gH2/xH/FQHq/yX/C/8B/zP/HwHc/zH/Jf8R/yX/Jf8J/yn/C/8V/xf/Bf8R/zP/Jf8R/xkB/P8N/xX/Df8lAf7/Ef8pAdD/KwH0/wH/MQH4Ae7/Jf8j/yX/D/8l/wH/Kf8bAf7/Jf8l/yH/LwH2/xv/HwH+AcwB1AHk/xcBzAGgAcwB5gH8/yUB0AG6/wP/JQH+/yX/Ff8FAfT/Mf8R/x//HwHy/yX/B/8jAfoB/P8l/wH/Of8V/xUB/v8h/yv/H/8lAeb/KwHqAfT/C/8dAfj/M/8P/xv/L/8H/x8B3P8fAfgB6v8nAfT/HwHI/yn/GwHY/y3/Jf8lAeL/J/8l/wf/Jf8b/ykB7v8l/w//JQH4/yMB3AH4/yUB0v8lAf4B5P8bAfz/If8VAfIB8v8F/wsB/v8hAeb/Ef8PAfwB9P8lAfoBgAH4Acz/FQHm/yEB8AGg/yX/JQH8/yX/Jf8b/yn/EQHm/yX/Ef8F/y//C/8b/yP/JQH6/wP/F/8h/yX/Ef8dAdwB+P8J/y0BvP8h/xEB7v8XAej/Ff9LAboByP8lAf4BgP8dAeQB+AG0/xX/Jf8R/xsB/v8bAcz/Ef8n/wn/K/8f/xf/J/8l/yX/Jf8tAf4Bxv8FAdIBxAGAAYoB5v8VAc7/EwHq/xEB+P8R/x//Ef8r/yX/Ef8v/xUByP8l/yUBxAHG/xsBzAHM/xv/Ff8RAeT/M/8l/yX/Jf8lAdz/JwHgAcwB+AG6/yEB7gHy/xsBuP8BAez/Ef8l/y8B/P8jAfYB/AGAAdwBrAHG/zMBtv8XAfz/H/8l/yX/Cf8p/xUByAHW/yH/N/8V/wv/FwHkAfT/HwHu/yUB6gHCAfIB3P8b/xEBzv8f/xv/EQH6/xf/CwGAAYoBgAGqAd4B/gHIAeT/IQHMAc7/IQHM/ykB/v8h/wn/If8f/wn/Ff8b/xsB/P8l/wP/H/8R/yUB6gH8/wP/CwH+/wv/Ef8NAbr/Df8lAfb/IQHc/yX/Jf8L/wv/CwHCAYD/Jf8h/wsB/P8lAeT/JQHM/wUBzAGAAbQBzP8lAfj/I/8t/xEB/AGyAb7/Jf8R/yUB9P8f/yUB3AHmAAAB+P8r/w3/CQHEAbT/Jf8HAcwB/P8l/wsB+P8n/xH/If8r/wv/SQH0Afb/Jf8BAbwByP8PAeT/JQHw/x//HQH6/wMB8P8N/wP/M/8J/wMBsv8l/zP/D/8t/yX/Ef8b/wv/Jf8lAer/IwH6/yH/Ff8X/xf/AwHs/y//B/8lAfD/JQH+/wv/JQH0/yX/E/8fAfwB/gH8/xv/Jf8F/yn/Bf8X/yX/IwHmAbr/Jf8f/wv/IwHk/zn/G/8bAer/JQH4/xUB6v8f/xv/Df8l/wv/HwG4/yf/Ff8bAfb/Jf8DAfb/J/8b/yUB/P8fAbQB/AHa/yX/Ff8V/y3/Ef8l/wf/KwH+/xEB3gHu/yX/MwAA/x//Of8R/1//M/8RAfwB1P8v/yX/JwHW/yX/DwGsAfj/A/8DAcwB+AH+/xX/LwH+Afz/EwH6/xkB6gHEAYD/HwHq/yf/Jf8V/xH/G/8R/yX/RQH+AYAB9v8R/yn/FwHI/yEBzP8l/yH/KQH8/xH/L/8bAcz/HwHq/yUB/v8l/wX/B/8L/xH/Kf8l/wn/G/8lAf4B/AH4/yX/Af8t/xH/MwHoAej/J/8R/yUB2AHO/xf/LwHk/zH/F/8l/yn/CQHmAej/H/8f/yX/Jf8hAfj/F/8lAfwB2P8bAcwB+P8lAeAB+P8l/xf/JQH8/wUB/P8fAfwBzP8lAf4AAP8RAf4B1P8L/xH/Cf8bAeL/JwHs/x8B/gH2AdwB6v8xAeoB5P8hAfwBgP8pAcz/FQHq/yX/Jf8l/wn/Jf8z/yUB/P8V/xn/Ff81/wUB1P8lAaIBrAHk/x8B+AHS/ykB7gHM/ycB/v8l/yEBzP8l/xf/JQH+/yUBzP8l/xsB6gH4/w3/Kf8l/yX/Cf8b/0kB/v8nAewB6v8X/yX/CwH8Afr/H/85Aer/JwGq/x//DwHcAaABvAH4AeYB0v8rAAD/F/9F/xv/Ef8r/zP/Jf8nAfz/Cf8LAeb/L/8V/xv/H/8F/w3/E/8VAeL/Ef8LAcz/FwHy/1kB/v8V/yP/K/8b/yUB+AHM/yX/Jf8lAf4BtAGA/zP/B/8l/xX/IQGiAYAB+v8b/yP/B/8lAcIBgAGsAfwB/AHm/yH/Ff8BAe7/D/8v/wv/Df8TAAD/F/8h/xX/C/8bAbj/Ef8N/yH/BwHw/xf/Ef8t/xv/JQAA/wsB/P8fAfr/CwHW/x8B3P8l/yn/C/8FAf7/IQG4/yf/EQHm/yf/Ef8XAbD/MwHy/w//Kf8l/yX/Ef8L/yv/G/8l/xH/Bf8l/x//FQGu/xsB3P8J/xEBtP8nAez/Jf9F/yX/GQH+/yUB+AH8/ycB7gH2Afr/JQHM/xsB+P8D/yP/AQH4/yUB1v8P/xH/B/8N/xv/Jf8RAf4B/P8b/yX/G/8RAdj/HwH4/xX/If8l/xcB9P8h/xX/EQHg/xn/B/8LAfD/GwHy/xn/B/8jAfz/HwHA/xsB0gG6Acz/Jf8f/xUB4P8hAfz/Jf8V/xX/Lf8lAf7/Cf8L/x//Af8vAcT/Ef8h/yUAAAHk/yn/Af8b/yX/MQH6Acz/H/8l/yX/Ef8lAeT/J/8HAf7/Jf9T/xH/JwHM/x8Bkv8vAeYBsP8v/yUB8AGAAbgB9v8NAer/H/8RAYABtAGy/ycB+P8l/xX/C/8f/yX/Kf8bAbD/GwHQ/yH/Jf8L/yX/CQHyAfz/Jf8VAfz/Nf8R/xv/G/8H/yX/G/8H/yX/Bf8V/xsBgAGq/yUB9P8bAfoB0v8hAcz/JwH+AcwB/P8f/yX/C/8VAer/JwH4/yUB1v8n/wf/MwH8Acj/Ff8f/xn/Cf8fAfT/C/8F/wP/If8H/wX/GwH2/zUB+v8h/xX/Jf8b/wv/Jf8lAAD/N/8f/yUB+v8l/wf/Jf8j/yf/D/8t/0sB4v8F/yX/G/8V/yX/CQG+AYD/Mf8bAc7/JwHqAewB3P8lAc7/Jf8vAfgBxgHMAf4BzP8r/xH/Ef8l/yUB/v8p/ycB5P8J/yX/Df8l/wX/L/8bAfj/IQH+/wP/HwH+/wsBwv8f/zP/Jf8FAeoB+P8L/yX/LwH6/yX/H/8p/ycB6gHM/xv/E/9L/y//G/8b/yX/CQH4/yUB/v8b/yX/Jf8f/xv/Df8h/yX/JQH0/ysB/v8T/xX/CwH2AboB9P8hAdz/HQH6/xX/C/8rAfgB/P8d/xv/I/8f/xEB6v8N/yX/Jf8V/wP/Df8N/x//C/8bAdb/L/8LAeABgAGiAbwB4gHgAeYBzP8fAfj/J/8v/wsB6v8zAbD/J/8lAf7/Jf8R/xH/Cf8lAeoBxAHS/xsB6gGA/zP/FwHM/yX/Ef8R/zP/G/8t/x//Bf8X/zH/B/8b/zX/Lf8F/yX/G/8n/wUBzAHk/xv/MQHS/zH/Ef8z/wsB8P8f/yUB/P8tAdb/Gf8FAcABrP8nAdz/K/8l/xH/Jf8PAcz/A/8BAfr/F/8v/y8B1v8h/wX/Ff8h/wv/K/8fAez/Jf8HAbD/EQH+/xEB6v8T/xUB/AH4Af4B+gH6Abr/KQH+/yn/JQH+/yMB8P8V/yUB6v8v/xf/Jf8r/xH/Of8v/xH/D/8lAfz/Af8R/yH/Jf8l/yUB9AHkAfz/DQG4AZ4BgAGK/ysB2v8fAfz/F/8l/xH/G/8HAf7/Ef8vAfIB6P8l/xUB/gH8/zP/Jf8hAZz/J/8T/yX/BwH8/wcB+v8bAfYB6gHMAYD/E/8l/yX/Bf8h/yX/JQHyAdoBzAG0/xsB+gHa/yEB8P8TAfz/Df8p/wcB/v8JAeD/H/8l/xP/Cf8LAfj/P/8b/yUB4AH4/yP/AQH2AeABvgGA/xP/E/8VAdwBsP8lAfgB+P8pAfT/K/8V/yX/CwG+/yf/Q/8l/ykB9AHO/yX/CwHM/yX/Df8P/yX/Af8vAfL/KQHi/x//HwH+AfIB1v8zAer/Jf8l/xUB8AGwAeT/JQH+/xUB/v85/yX/Ef8X/xH/KQGwAZ7/JwH+/yv/Af83/xEB/P8l/w3/Jf8L/yX/B/8R/wEB6v8lAcQB/v8N/w3/If8l/y//LwH+AYABggGsAYoBzgHcAewBzP8l/x//JQHW/yX/GwHq/y3/Jf8z/yX/Af8lAer/Kf8ZAfr/If8l/x8BzP8b/yUBzP8n/yUB4v8nAfb/BQHa/xv/CQH4/yX/Jf8vAf7/I/8pAfz/Ef8bAdYB+gH8/zMB/gGwAYABgP8l/x//DwH4/zP/G/8lAdz/J/8R/wf/Bf8VAeoBuAHQ/x8BuP8b/x//C/8l/xv/Jf83Ae7/B/8J/y//Jf8H/xX/Mf8X/xv/DQH+/xv/JQH4/y3/Ef8f/wv/J/8n/wsB1gHI/yEB1v8l/xH/F/8P/xH/Hf8RAZj/KwH4/yX/Ef8XAfT/M/8l/zP/D/8T/wX/Jf8lAf7/Jf8H/yX/H/8l/xH/JQH+/yX/FwH8AcwBzP8n/yUB7gH4AAAB5AH+Afz/Of8v/w3/Jf8b/xH/DwHOAfz/Ff8l/yX/A/8l/w3/MwHi/yv/GwHM/wUB2P8D/yv/CwHw/xEB6AGw/y3/AwHq/0v/Jf8v/x//Qf8Z/xf/Jf8L/xv/EQH4/yH/Jf8J/wUBzv8n/yH/G/8l/wMBgAG8/xEBzAH4/ysB6gH8/yX/B/8L/zP/G/8r/wkB9P8p/yEB6v8lAf7/JQHM/yUB5gH8/wX/L/8JAfz/PQHOAcwB9v8h/yUB/v8X/xsB9P8lAeoB+P8D/y//GwHs/yUB9P8P/wX/Cf8lAf7/Ef8p/zEB6gH2/yUB6v8V/x//C/8R/yv/B/9LAdIB/P8pAbgBmv8fAeYB6v8f/yn/Jf8zAdT/DwHMAdT/Ff8pAeb/If8R/wv/Jf8b/y//F/8v/xH/Ef8ZAeL/JQH+/xH/JwH+AfwB6v8v/xUBuP8l/zP/Jf8l/yX/C/8h/xEByP8d/ykB6P8X/yX/Ef8R/yv/FwH4Ae4BzP8L/zX/Jf8n/xv/Pf8lAfj/Of8j/xv/IQHy/y//Bf8n/xH/K/8f/xH/Jf8L/ycB+gGwAbQBzAHIAbQBsgHUAcQB+AHO/xsBvP8f/yH/Ef8f/yv/KQH8/xv/G/8lAfAB8P8X/xH/Jf8lAb7/HwH6AcT/If8p/yP/Ff8FAfD/Jf8b/wv/If8bAf7/JQH4/yUB9P8l/yX/Cf8lAdz/MQH+/yf/GwHUAdL/C/8lAf7/S/8X/xH/Lf8l/yP/Af8R/xv/M/8lAcL/KQH0/yUB3P8rAbj/Jf8bAYD/FwHq/wP/LwH8/wv/GwH+/yX/Af8lAf4B6gGs/x//MwHSAaQB1P8L/xn/HwHu/xH/Bf8V/w3/G/8B/y8B/v8n/x//G/8H/yMB9AH4AbgBzP8lAfT/L/8VAbL/JwH+/yUB/P8bAf7/C/8Z/wv/C/8RAcz/GQHW/0sB/P8l/xX/Af8v/yX/Cf8p/yn/EQH4/xv/Jf8JAcz/H/8zAf7/JQH4/wUB5v8lAeb/MwHI/yX/Jf8l/xsB/v8RAfYB/v8b/yX/Cf8N/xH/KQH+Afb/Ef8l/wX/F/8lAAD/Hf8f/wH/Hf8D/xv/G/8l/xX/MwHq/x3/Jf8x/yX/I/8lAfD/L/8fAfL/Ff8nAf4B4AH0Af7/Cf8lAfD/Kf8LAaL/Jf8lAbb/JQH+/yX/Ef8F/wX/G/8l/yX/C/8FAf7/IwGy/yH/BQH4Acz/JQH2AAD/GwHyAbr/GwH8AfgB9P8l/xEB/v8l/yUB7P8d/yX/CwH8/x//G/8FAfwB/P8N/ykB/gHi/yUByAHMAej/Bf8L/wv/A/8v/wn/IwH4Acz/Ef8l/w0ByAH4/x//Jf8LAbwB+v8lAbABuv8lAcz/EwHwAd7/NQHq/wP/LQH+/yH/Bf8pAfz/Jf8d/wv/E/8bAeT/G/8lAcz/FQHs/x//JQH8/wX/N/8l/xcB6v8fAdb/CQH6Aez/C/8l/xH/Ff8b/wv/GQHq/yMB/gHEAfj/Bf8b/yUB8AHSAcD/F/8D/wcB/gHW/xn/JwHy/x//Gf8T/yX/C/8v/wkB9P8V/yUBxv8l/yUB/P8l/w0BzP8TAeYBzP8X/wv/JQH4Afj/KQHM/ycB/P8R/xUB9P8f/yX/Df8L/x8B/P8b/wUB+P8z/xf/Af8l/xsB9P8RAer/G/8p/xEB5v8j/wv/H/8l/yX/F/8D/wv/Jf8H/yUB/v8f/yP/Bf8bAeoBgP8x/xP/Bf8BAej/F/8R/xX/Df8fAcz/FwHy/y3/CwH6/wH/J/8bAdb/H/8X/wH/BwHM/x8B/v8FAfr/Jf8bAc4B9P8L/xv/NQHw/yX/Jf8F/zP/Df8fAeT/MwHMAewB/gHs/xf/E/8RAf7/KQHyAdT/GwH2/yX/EwHk/y3/F/8LAf7/JwHmAeL/GwG8Aer/FQG4/xUB7gH+/zH/GwHq/xsB/gH4/wcB7P8H/yn/Ef8f/y3/AQH4/ykB/AH+/yUB3P8L/xX/L/8b/x//I/8l/yX/Jf8h/wn/FwHm/y8B7P8p/yH/Jf8v/x8B/gHMAfwBuv91Af7/CQG2/yUB/AGAAYoBzAHO/y8B/P8R/yn/C/8bAeT/H/8f/wf/I/8T/yEB/v8lAc7/JQHq/wsB+v8R/yX/Jf8B/xcB3AHI/y//Jf8ZAfwB/v8pAeL/If8P/yX/F/8F/yX/C/8jAeD/JQH+AboB7gHo/xEByP8pAdb/Kf8l/z0B1v8D/ykB/gGA/zEByP8VAdz/L/8DAcwB+P8t/yUB/P8hAeoB/P8F/ykAAP8J/x8BzgHM/xsBzAH4/y8B6v8XAdL/J/8n/yUB5P8rAcwB6v8xAf7/Cf8bAcgBvv8nAdwBzP8lAAD/Cf8F/xf/HwH4Aer/BQH+Afz/G/8V/y8Buv8j/yX/L/8hAfT/M/8nAer/Jf8d/wv/G/8R/yX/G/8l/wX/C/8pAdL/J/8R/xH/CQH6/xv/Jf8Z/xsB6v9BAfb/K/8L/yUAAAHg/w3/B/8V/wf/Ef8VAeD/Kf8V/wv/KQAA/zP/G/8fAfT/Gf8l/y//F/8lAfL/LwHc/y8B4P8p/yUB8AHi/yUB/gHM/yf/C/8L/yUB6v8l/yUBvv8h/wf/G/8j/y//GwH4/w3/HwH4/zH/Jf8l/wMB+gH+/zH/G/8DAf7/Df8f/x8BzP8l/wP/Gf8n/zP/B/8F/y//Jf8l/xP/B/8lAer/H/8fAdb/GwH4AYD/JQH+/yX/G/8h/x//Jf8tAfr/Cf8z/wUB6v8l/zMB+P8f/yX/FwH2/wv/B/8f/yUB+P8pAf7/Kf8RAfz/JQHq/zX/FQH0/yEBvgHw/yv/JwH0/wsBwP8l/xH/Ff8R/yX/G/8H/x//Kf8N/yX/AQH8/y//JwH6/xv/Jf8l/yH/LQH0/zX/DwHEAfj/Ff8JAcz/If8l/ykB7v8h/wX/CwH0/wsB3P8fAAD/C/8fAfj/H/8R/wv/Jf8R/xH/HwHw/yMB5P8l/w0B8P8b/xUB9v8r/x3/Bf8R/yH/Ff8h/xn/Ef8lAfT/JQHGAe7/JQH+/zMB+v8h/xX/JQHqAdz/Jf85/yMB6v8t/xH/Jf8fAfIB4v8J/yX/MQH+/x8B+P8P/yEBogGAAYoBtAHS/wv/HwH4AYD/KQHy/xv/Af8f/yX/Jf8p/zMB9v8XAeb/LwHMAfz/C/8P/xX/Bf8X/y8B6v8l/wP/C/8R/xX/I/8pAfj/If8V/wf/CwHq/x//Jf8H/zH/IQHs/xX/Df83/wv/C/8V/yX/J/9BAeD/Jf8R/xX/HwH4/wX/Jf8FAbj/Jf8RAdb/M/8L/xX/K/8R/w3/B/8p/xf/Jf8D/wH/Jf8p/wv/Ef8V/wcBugH8Adb/JQHSAcwB9P8tAf7/G/8N/y8B+P8nAf7/Df8v/yUB/P8fAf7/I/8p/xcB2v8f/yX/LwH+/xsB5P8jAe7/Gf8v/y8B9v8f/wEBwv8nAeAB+P8FAdD/HwH6AfgAAAHS/yH/Jf81/xX/If8lAe7/F/8bAewBgP8z/xEBxgH0Adj/G/8B/x0BgP8l/yUB1P8DAf7/Df9BAfL/M/9D/wv/GwHIAdb/Kf8lAcj/JQH0AcgBxgHM/yX/Jf8v/xf/Df8hAewB3P8d/xcAAP8lAf4B/P8j/xv/CwH6/yX/Bf8J/yUB/v8l/xH/Ef8j/xH/J/8nAdL/KQHwAcz/GwH4/xv/Nf8lAfgB5v8p/wv/J/8b/yX/Of8D/zP/Bf8hAe7/Bf8RAfj/IwG+/xf/Af8p/yf/GwH4Afz/If8l/xv/G/8b/w3/K/8l/wsB+v8f/xsB/P8f/wv/B/8f/xP/H/8J/zP/G/85Afz/Lf8lAeYB1gGAAZgBigG6Ad4BtAG0/yn/JQH8/wv/GwHWAbL/Jf8H/xv/AQH8/yX/Lf8bAfYB/P8F/xv/F/8lAdwB+P8RAfj/JQHuAfj/AwHM/x//GwH+/yX/C/8l/xkB/P8lAfT/Df8l/wn/IQH6/yf/Hf8bAdz/JQHM/zH/IQH8/wEB9P8hAcwBwP8nAf4B3gHkAfj/JQHqAcz/G/8R/y//Ff8VAfL/Ef8h/wn/GwH4/xsB9P8l/xn/GwHkAYABgAHU/yX/L/8F/wP/H/8J/0H/A/8TAfYB/v8LAfr/Kf8zAf4B0gHM/y//JwHg/yn/DwH8/yn/Ef8nAdr/B/8N/xsB+P8hAdD/FwH8Acz/JQHqAej/JQHM/yf/MwH8Adz/G/8l/x8Bxv8d/yX/JQH6/xEB9gG6/yX/Jf8d/yn/C/8XAdT/Ff8l/yX/BQHy/yP/Jf8b/w3/G/8V/yUBgAGA/xv/H/8l/wkB/P8lAeoB7gHkAcgB7gGiAYABlAG4AaIBoAGwAdb/Ff8vAfz/Jf8h/yf/K/8R/wX/LwHSAbT/Ff85/xEB/P8R/yX/Ef8lAf4B7v8lAe4BzAH8/xsBxP8B/yUB7gH8/xUB+gH+/yX/J/8l/yf/Gf9LAdb/G/8H/wX/HQH+/xv/Jf8lAf7/Jf8NAc4B/P8N/xH/FQHqAe7/A/8L/wn/Kf8bAe4B+gH4/yUB/v8X/xsB3P8l/wv/E/8b/0EB/P8f/yv/JQH8/wn/Jf8V/yH/A/8f/yUB/AH+/y8BzAHM/yX/B/8h/wX/CQG0/yv/MwH4/yH/A/8h/zf/JQH+Afj/C/8n/yX/B/8lAfz/Jf8fAeoB/v8RAfgB0gH+Abj/F/8hAdABnP8nAf7/EQHW/x3/Jf8TAfT/J/8bAdz/Jf8l/wX/JQH2/w//Jf8J/xUByP8f/x3/H/8F/yX/GwH4AfYB3P8x/xsB6v8N/xsB/gHq/yMAAAHi/yX/C/8v/xv/FwHg/yUB1v8p/yUB6v8l/x//Jf8p/xv/KwHm/yf/C/8l/zn/B/8bAfgB8v8nAer/EQG+AcIBpAG6/x8B5gG+/x0B8P8VAb7/Jf8b/xH/IwHM/wX/FQHyAfj/HwHqAb7/MwHMAaYB6v8lAewB6gH8/yX/CQHkAfgB+v8n/xv/FQG+AYD/N/8nAaoBzP8b/yP/JQHu/wP/OQHq/wsBzAH2/xcB6gG4AfL/IQHy/xv/GwH8/xv/I/8l/y//Jf8v/xv/G/85/yX/Qf8v/yX/Bf8fAfD/Jf8b/xH/L/8TAfj/EwHc/xf/EQHi/wn/KQHqAb7/JQG+Ab7/F/8V/xEBzP8l/zv/JQH8/xX/Kf8b/xf/Gf8v/y//C/8lAfb/C/8b/wv/AQH+/yf/EQHM/xv/CwH6Af7/H/8tAer/JQHi/x3/Ff8ZAdwB3v8f/yX/G/8FAfz/Lf8NAc7/Of8H/x//B/8fAfoB9AH0/wsBzP8v/zP/Jf8l/xv/JQHe/yEByAHUAeb/GwHs/x8Buv8lAcj/H/8RAeD/CwHi/x//EwHu/yX/Bf8jAeD/Cf8nAe7/Ff8bAf4B+P8Z/wsBvgGAAbT/EQHg/xv/JQHkAaL/JQHIAfz/HwH0/wf/Sf8L/y8B0v8VAfr/Ef8B/xf/JQH+/yn/G/8p/wUB5P8RAer/Gf8b/xEB4v8p/yEBwP8t/zP/AQHi/w8BugGAAeL/F/8lAer/HwHw/x//KQHm/yX/F/83/xH/Bf8ZAfL/Ff8x/yX/G/8r/wUB1v8n/wv/Af8J/xMB+P8RAf7/Bf8lAeD/JwH2AbT/Ff8B/wv/LwHO/ycB9P8f/wcB/gHo/xH/A/8p/xH/JQH8Aer/H/8v/yUB6gGA/xcB7gHyAfQB6v8r/xsB3P8l/yX/Cf8DAeT/N/8v/yX/H/8lAdz/G/8L/xX/BwH4Afz/H/8LAf7/Jf8p/wX/G/8hAej/IQHMAeL/Jf8b/y//G/8bAfz/Jf8LAdIB/v8bAf7/GwH+/ykB1gHk/yUB/gH4/w3/JwH6Afz/M/8b/w8BgP8z/yf/JQH6/xsB/gG4/x3/Kf8f/yEB8AHu/yUBzP8HAcABzv8l/yX/JQHq/yX/JQHo/yUBxP8l/zH/Ef8l/yn/JQHu/xX/M/8B/yUB4P8nAeIB1AHyAbT/HwG4/zP/Jf8B/yX/G/9D/yX/Of8z/zH/AwHM/xsB/AGAAZwBgP8lAcgBgP93Adz/JQH+/1//If8f/x//JQH2/x//G/8B/yUB/v8l/xEBzAHMAcwB+P8lAfb/Ff8HAdj/Kf8R/y//Jf8R/yX/Cf8L/yn/Jf8J/yUB/AHM/3f/A/8L/zP/Ff8F/yX/JQH8AYD/AwGqAcIBzAG0Acz/JwH6Afz/Af8pAfz/EQHuAAD/Kf8LAAABtP8x/ycBgP8pAeoB/P8h/x//Ef8LAfj/Ff8lAdb/H/89Ab7/FQHMAej/Jf8l/yUB/P8lAdL/Ff8bAfwBwgAA/xv/Ef8b/wsB3P8p/yUB5v8pAer/Bf8z/yX/Jf8r/xv/Ef8lAd7/JQHe/yf/JwH+Afb/F/8pAf4BzAHWAfj/Jf8VAfQB6gH4/yX/Jf8F/x8B5v8l/xn/Ff8B/yX/E/8R/wP/GwH+Af7/H/8B/yX/C/8b/xX/GQHI/yH/HwH+/xn/Df8t/yMB6v8l/yX/H/8D/wv/C/89/w//E/8NAAD/If8f/wEBzAHMAb7/GwHm/yX/BQH6Afj/Ef8H/x8B0v8J/yX/Ef8L/yMBzP8L/w//G/8l/wP/Kf8L/wn/AwG+/x3/G/8hAYABov8XAfQB/AH8Ae7/H/8bAe4B+P8b/yX/EQH+/xX/DQH2/wP/BwH0Acb/Hf8l/xEB0AGsAbr/KwH0/xv/Jf8lAfT/JQHi/yX/Cf8l/yUB1v8p/w//E/8p/xv/Ef8F/xf/E/8R/x//Gf8L/xsB6v8lAf7/If8XAf7/JQH2AdAB+P8n/xEB4AHk/xn/LwHW/yEB/P8lAfj/Ff8l/xv/C/8H/xv/Kf8lAfz/J/8BAer/Kf8l/xH/F/8B/yUBzv8f/wUB1gH4/zUB8v8V/wEAAAHgAcwB+AHE/ykB/gH4/zH/H/8R/w3/Cf8b/xv/C/8b/yn/EQHg/ykB/gHM/xn/Jf8F/wsB4gHS/xv/GwH2/yP/FwH+/zP/Ef8f/0v/Jf8f/xsB+v8V/wX/Jf8pAbj/H/8HAYAB0v8n/wEB6v8tAfAB2P8f/xX/Ef8l/xv/G/8bAfAB3v8DAdwB4AGmAYABggGc/xP/Jf8zAeIB8P8j/wv/G/8lAcz/GwAA/x//Df8fAaj/HwGAAYr/KQH8/x8BuP8zAf7/B/8h/wP/Jf8p/xn/A/8D/xX/Jf8r/yX/Ef8j/xH/I/8l/wEB8v8h/yUB/P8fAfQAAP8D/ykB0v8z/yEB+P8F/x//Ff8F/yX/Df8tAYABgP8JAewB3v8tAdIBtAH6AdL/Hf8l/wf/Ff8fAer/Jf8z/w//Jf8f/yH/Af8P/xH/B/8XAbD/JwH0/x//Kf8p/wX/M/8bAfwB9v8h/xUB+v8h/ykBgP8hAer/M/8b/yf/G/8N/yn/IQH2Adr/Jf8v/yX/HQHu/xv/Ef8hAfD/Ff8f/wf/L/8R/x//Jf8NAfL/Jf8v/x//Lf8j/yX/Af8bAcj/HwHkAfL/C/8bAfL/Lf8R/xEB/P8f/yX/Jf8z/wP/D/8l/wf/Bf8L/yUB4v8vAfj/H/8b/yX/I/8l/wn/LwG6/wv/CwHm/xsB/v9BAez/Jf8L/w0B+AHQ/xX/A/8J/xH/Ef8fAeoBzAH0Afj/G/8L/yUB4P8d/x8B/gHcAegB/v8HAf4BzP8l/xH/If8b/yX/Df8V/x//If8l/wP/Jf8z/xP/IQH8/yf/G/8LAdQB0v8PAegB5v8lAcz/H/8l/xv/E/8dAfT/DQH0/yH/Df8lAfwB6v8f/xH/Ff8lAdL/IQHy/wv/Gf8lAfr/EQHY/yH/B/8RAdIBgP8lAfb/Kf8l/yH/I/8P/y//C/8b/yUBxv8v/wcB9v8n/yUBxAHcAaABoAGKAc4B6AHaAeb/Hf8HAcwBvv8J/wP/Ef8J/ykB+v8fAfL/FQH0Ac7/Jf8vAfj/KQHS/yH/FQH6/x//Cf8LAdQB4gG6/wP/Bf8RAeIB/P8b/xv/N/8L/xsB/gG6/w3/Jf8l/wf/G/8L/yX/IQH4/x3/H/8HAfoB9v8BAer/A/8zAdYB3AHk/xv/H/8tAfwB+P8l/wv/GwH8Afj/JQH0AcwBsgHEAcgB0gHQAboBzAHkAdD/Jf8lAdz/F/8pAe7/G/8R/zP/Af8f/xH/LwH4/w3/BwH+/x//B/8l/yX/IQHyAdz/JQHc/yMB4P8V/xv/H/8l/x3/JQH0/xUB5P8z/zf/G/8F/yUB3P8r/yUB/P8X/yUB/P8d/yUBuP8BAeoB9P8fAAABuv8l/wf/KQH6/xf/G/8j/xH/GwHM/yf/GwHq/yf/Lf8lAdIB/AH+/yX/B/8X/wUBtv8x/ycB1gHoAbj/EQGAAZwBmAHSAbwB+AH+/x8B6v8Z/x//If8L/ycB+P8b/yH/FQAA/w0B+v8l/yUB6v8DAYD/If8lAeIB9v8l/yX/Jf81/wH/M/8HAfT/FQG6AcwBzAHSAbT/JQHe/zEBrAGA/yn/FQHq/x8B/gHq/wH/IQHMAdj/Ef8R/y//GwHg/yn/C/8l/zn/H/8LAcz/B/8FAYABggHMAYABxAG6AcwB3AHe/yn/Cf8lAegBzAHMAbz/Jf8l/yP/Jf8b/zP/GwH6/xn/Jf8Z/x3/Df8V/yH/Ef8F/xEB/P8X/yX/Jf8z/xX/Of8J/xP/Jf8zAdb/F/8H/yX/Ef8l/xH/Jf8x/y8B/P8vAf7/Jf8r/wv/G/8Z/yX/B/8fAaz/H/8LAbj/LQHM/wv/JQHyAfwB/P8b/0UB6gHiAeT/LwH8/xv/I/8z/wEAAP8lAfT/If85Ae4Bvv8h/yX/D/8F/x//L/8fAeAB1v8XAfr/JQH8/x8BvP8n/wMB/P8VAe7/Ff8l/xH/CQH8Af7/KQH4AYAB+P8l/xX/JQH0/yX/K/8h/xv/EQH2/xMB+P8V/ykB/AHOAaz/K/8HAcgBgAHs/y3/Jf8L/xsB/P8l/xX/Jf8HAeT/HwH+/yX/Cf8h/zn/Ef8f/yv/Jf8j/xv/H/8R/wcB+P8t/xH/K/8fAbb/JQH+/yn/Ef8b/zH/Jf8r/yn/H/8VAeIB0v8nAfj/Kf8v/wsBrP8pAfgB7AHM/zMB/v8R/yX/H/8l/xEBgAGA/wsBsAHq/yH/B/8LAf4BzP8fAfL/HwHyAfz/M/8LAfb/K/8l/yX/EQH+/xf/C/8lAfQB8gH6/ycB8P8l/wP/Jf8l/wkB8v8l/wcB2P83Afz/Jf8X/x//M/8H/wP/C/8N/w8B9AHy/wUB+AHq/ycB/v8P/yH/Jf8b/yn/B/8JAe7/G/8lAYD/M/87AdYB5P8j/wv/FwH6/y3/Jf8lAcz/Jf8L/xv/B/8H/xn/KQHq/yP/BwG6Afj/Jf8lAf7/JQH8/xEB+AAA/wcB0v8l/yP/Jf8lAfL/Lf8pAdQAAP8lAfD/J/8F/yX/JwH8/w3/Cf8v/yX/J/8nAf7/I/8R/xcB6gHo/xP/EwHgAfj/H/8dAfgBzP8l/yv/Jf8T/wsB3AHc/x8BxAH4/xX/C/8lAfYB/P8l/yX/Cf8l/0H/Jf8l/xf/Jf8l/wcB2AGs/xn/L/8VAbz/Kf8H/x//If8J/xUB3P8Z/yH/Ff8lAfwBzv8f/w3/Ff8f/y8B4v8l/x8B/v8vAcz/If8h/xH/Jf8l/xv/G/8FAdz/Kf8DAb4BgP8jAfQB+P8V/yUB6gH0/y//G/8H/zv/If8bAcgB3v8L/yX/J/8l/wf/If8n/wf/Jf8f/xX/Jf8l/xH/Jf8b/y3/H/8HAf7/KQHyAYABzAGu/yUB0AG4AeoB6gG4/yUBzP8l/wv/JQH8AbT/Hf8bAeIB/P8j/yn/H/8P/x//J/8z/yX/EQHq/yUBzP8l/xsB3P8l/yUB9AH2Afj/Kf8f/y0AAAH4/x//F/8b/wsB9v8bAfr/JQHq/yH/Kf8DAeb/Jf8pAfz/G/8hAdz/JQHq/x//E/8R/xv/Ef8vAcAB/P8fAfwB6gHqAej/Jf8F/y//Ff8l/x//C/8b/xf/H/8l/xsB+P8lAfL/J/8B/wsB/v8bAfr/FQH2/w3/Af8N/y//J/8V/yX/Jf8bAcz/H/9V/xP/M/8XAYABigGKAYoBggGGAYL/MQH+AbT/JwHmAfwB7v8RAfoB2P8h/wf/DQH4/yMB4P8f/xv/H/8b/xv/I/8PAfgBzAH4/yX/Ef8p/w8B/v8p/yX/C/8n/x//M/85/x//CQH4/yf/DQHM/x0BzP8l/xn/M/8lAeoBzP8ZAcgB7v8VAfz/JwHu/yn/Ff8l/yH/AwH4/yf/Jf8Z/xP/Jf8F/yUB/P8NAfT/H/8R/xP/BQH6Af7/BwHk/yEB+v8z/wv/Jf8l/yX/H/8bAer/GwH4/xv/F/8RAcYBtAGwAaD/J/8l/yX/JQHW/yX/JQH8/zP/B/8FAfT/J/8RAb4B/P8Z/wf/G/8b/ysB/P8b/yv/Ef8l/xH/Bf8lAYABzv8hAfz/FQHeAfz/Cf8tAer/AQG2/x//Bf8F/xsB/P8l/wv/JQGAAaD/HwH6/ykB/gHU/wEB/v8l/yX/FQH8AfwB+P8b/zH/Jf8h/yX/H/8N/xX/GwH8/yUB6v8l/yX/GwH+Ab7/M/8l/w//E/8l/yX/G/8V/wf/L/8L/yn/L/8bAeT/H/8v/yX/H/8l/yf/Jf8lAf4B5AHW/xUBzP8VAcwBtP9JAe7/Jf8F/yX/C/8z/xH/LwHi/zP/Jf8n/xH/KQHyAcwBugHOAaoBzP8lAf4B5P8l/wf/H/8l/x//Jf8B/yX/B/8PAbj/K/8R/zMB6gHM/xv/JwHy/yn/JQH0Acz/Cf8l/x0B/v8r/xv/A/8n/x//G/8l/wn/EQH+/wf/L/8F/wUB/v8h/wsB1P8f/xH/G/8p/x//DwH2AcwBzAG0AdYB1P8lAf4Bvv8pAaIB+P8bAer/IQG8AfgB+AH8Afj/Jf8V/xv/Jf8f/xH/M/8N/xP/H/8VAcz/Kf8l/wv/H/8n/xsB/v8lAbAB8P8X/xX/Jf8L/xsB4P8lAf4B/gGA/yX/Jf8VAfYBtAHO/x8BzP8VAfoB+P8b/yX/Jf8fAfgB5v8h/yUB6v8f/xf/C/8VAdwB+AGa/ysAAP8x/xX/HwHqAcD/S/8L/wX/Jf8f/yMB9v8pAdD/GwH2Acj/C/8l/yX/Jf8lAf7/If8L/xH/Bf8L/yX/B/8lAfz/HwHM/wP/JQHMAcz/HwH0/wX/GwHyAdj/J/8VAbr/J/8lAeb/H/8F/wX/Bf8J/y//BwG6/x//Jf8RAcz/G/8X/wn/BQH4/xv/EQHO/wMB9v8l/ykB1v8n/wEBzv8nAfwB1v8J/yX/BQHc/yP/JQH+/wkB+P8h/yX/Jf8D/x8BzP8f/xv/M/8b/wv/Jf8B/x8B6gH0/yn/GwHc/w0B/P8l/yn/JQH2/x8B/v8N/xEB/AHyAfz/JQHAAa7/JwH0/zEB7v8z/xv/HwHy/x//Bf8X/xcB/v8l/yH/Lf8r/wP/Jf8b/y8B+P8l/zv/Jf8B/xcB0gGwAcwByAH6AbD/Df83Af7/I/8VAAD/Ff8b/wv/Jf8x/ysB6gG4/xv/J/8B/xsB6v8p/x8B3P8p/yn/EwHw/wn/Jf8lAfj/JQHy/xsB+P8H/yX/D/8f/y//IwG4AcwB0v8lAf7/JQH+/x//JQH4/yUB5v8v/wsB/P8BAf7/Jf8VAfwBvgHc/wEBsAGs/3UB6gHMAab/K/8XAbz/JQHc/yH/Jf8NAdYB/v8V/xUB/v8L/wX/NQH+Afj/Af8L/yX/EQHiAfr/G/8D/ycB/P8l/xsB5P8fAfz/HQH+Ae4B9v8l/yX/Ff9B/wcB+v8b/yUB6v8l/xP/BQHm/wn/CwH6AcoBpv8nAfb/Q/8l/wf/Jf8l/xv/L/8b/wv/BwHw/yX/CwHq/x//D/8fAfr/Jf8lAe7/F/8bAcz/Gf8R/xH/JQH4/wcB/v8H/yX/G/8l/xv/JwHW/yP/B/8VAfb/JQHcAc7/GwHY/y0B4P8n/yX/H/8FAfj/JQHG/yX/Ef8f/yX/JQHM/yf/I/8b/wMB+gH8Afr/Gf8p/w3/Ef8b/xv/Af8Z/yX/If8R/yUB6v8fAer/Hf8VAcgB/AHq/wX/J/8D/yX/FQHqAeT/MQH8AdYBzP8v/xH/HwH8/xf/Jf8h/wsBgP8d/yX/C/8bAfwB/P8l/x8B5P8f/x//Gf8tAfz/FQHc/yX/Jf8N/xP/GwH8/x3/F/8FAcgBgAH4AdgBtAG0AfgB/v8L/yX/C/8HAfAB7v8bAe4B6v8b/wP/Kf8f/yX/K/8b/y3/L/8L/yUByv8j/yH/A/8F/xv/Ef8R/yf/Jf8b/xH/G/8Z/wH/Bf8l/yn/C/8v/z3/Jf8RAcz/JQHsAbD/JQHC/wv/GQHqAfr/GQH0/yX/KQHc/0v/JQH8/xMB/AHy/xkB6gH4/x//JQH6Afz/CQH6/ycB4P8d/xsB4v8lAaD/If8lAf7/C/8l/xX/GQGsAcz/JQHcAboB1gH0/xsB9v8B/ykB+P8n/wEB6gHGAdQB6v8l/xEB3P8t/yH/L/8J/yH/Jf8l/xv/F/8n/yX/CwHy/xcBzAGAAYr/FQHS/ykAAP8l/yUB6gH8/x8B+gHW/yX/JQH+/yH/M/8HAeQB5P8h/xH/Kf8N/wf/Kf8X/w3/G/8X/yX/JQAA/xv/Ff8zAf7/Ff8l/wcB/P8H/wn/Af8b/yn/Jf85Afz/JwH+/wn/IQH4/xf/G/8fAeD/GwH8/yX/E/8pAdz/Jf8J/xv/N/8l/xH/Jf8lAfb/I/8l/yX/Jf8T/xn/Ff8f/xsB9AH6AYD/Lf8l/yUAAAH2/yUB/P8lAf7/JQG4/yX/Df8bAer/G/8J/xsB9P8R/xv/I/8lAAABvgH4/wv/BwH6/yX/If8z/xkB+P8b/xkBxgHEAbz/Hf8P/yX/C/8l/w3/AQH+/x//EQHAAfgBzAGAAYoBtAH4Aej/Kf8lAe7/Jf8NAfz/BQH+/wv/L/8l/zP/G/8l/yX/P/8R/wf/L/8F/yX/IQH6/xv/Jf8tAfz/MwHqAej/H/8R/yX/Bf8HAbT/GwH+/xEByP8v/xH/Jf8hAeIBmP8l/xEB6v8hAfr/KwHW/0kB+P8L/yX/JQH2/y//GQHW/w8B+P8J/wP/MwHo/y0B/v8l/yH/BwHc/yf/A/8h/yX/Af8l/yX/G/8R/xH/L/8H/yX/JQH4AYD/Ff8f/wn/G/8L/yX/Jf8j/wn/Kf8N/yH/Jf8l/xsAAP8l/xEBzP8L/y//Jf8v/xv/JQHy/xX/Kf8lAer/M/8R/yX/JQH+AYAB5v8l/yEB6v8vAdz/L/8lAfAB7gG0/yX/Jf8lAer/Ef8v/ysB9v8h/yH/Bf8lAfj/BQHI/x//EQH6/yX/Cf8b/yX/Bf8l/wv/H/8h/wf/QQHq/yX/JQHw/wX/Jf8V/yUB+AHm/yX/BQH4/yUB+P8Z/xv/C/8l/wn/G/8hAfT/H/8pAfj/GwH+/yX/C/8f/yUB5gGu/yUB9AHw/wX/B/8l/wH/JQHWAcYBzP8LAeYBzP8FAeoB3P8jAfAB5P8lAeb/F/8p/wv/Cf8p/xsB8v8p/1kB0P8l/zP/C/8b/xsB5v8v/wv/MQH6AeT/Df8fAb4BsP8lAdYBgP8hAbT/HwH2/xP/H/8V/wP/Jf8N/xMBsAH0/x//H/8r/yX/JQHu/zEBsP8lAfz/LQGAAcz/HwH+AeT/Jf8FAer/H/8bAfoB9gHM/ysB0v8zAdz/JwH6/xv/BQH8/ycB+v8l/wf/Jf8vAbABuv8b/zkB8P8tAd7/Jf8b/xcB+v8l/xn/GwHM/xv/Jf8B/yX/EQHy/wv/H/8l/yX/Af8L/yUB3AAA/yUB+v8L/wUB4AHU/yP/B/8PAfoB+P8F/wf/Ff8R/wMB/AHq/xsB/gH4/ykB/gHG/yEBzP8L/wcBvAHG/xUB6v8L/yUB5v8n/yMAAP8VAfD/HwHq/yEB+gHU/yX/L/8lAdL/Lf8V/yX/Kf8b/yUBzP8v/w8B+AH+/yf/B/8pAe4B+gH4Adj/G/8lAer/Jf8B/wsB6gH4/wUB7gH0/xUB9P8nAfQB5P81/xEBxgGw/yUB6v8v/yX/Jf8H/xEB/P8P/ykB0P8jAfT/Lf8RAfj/Lf8lAAD/Ef8l/x//Jf8b/yX/M/8l/yX/Hf8R/zf/Af8l/xv/L/8FAaT/M/8LAfj/JQH+Aej/KQH+AYD/If8bAcz/Lf8lAeAB3AH4AcwB9gHWAc7/Bf8l/yX/LwH+/xv/Bf8fAfj/KQHAAc7/J/8hAfYB3P8l/xv/C/8J/xX/C/8l/yf/GwHq/x//CwHqAfz/BwH+/xEB/P8j/y3/BQH6/yEB/v8R/xf/Jf8l/wf/K/8l/yX/D/8l/zH/H/8l/wv/Jf8V/yP/JQG0/zEB/AG0/y3/GwH8/ykB/P9BAfT/Jf8p/xsB9P8R/z//P/8l/yX/Ef8f/xsB8P8b/wf/IQHqAfgB9v8v/yn/Jf8v/xUB+v8x/yX/Gf8lAf7/G/8V/wsB6v8l/yUBuP8p/yP/I/8J/wsB+AH4/xH/L/8T/y0B+P8b/yX/Jf8J/yX/Ef8B/xX/EQHS/zMByAGAAYIBgP8l/yUB/AHMAeYBwAH8AbQBrP8lAfwB7P8l/xEB/AHQAfgB+P8V/wf/LwGA/xX/C/8hAcz/Kf85/x//Ff8D/wEB9gH+Af7/Jf8X/yEB8P8HAeD/Jf8V/yX/EQH+/ycB/v8lAfb/L/8p/yX/Jf8B/xv/GwG0/wcBgP8h/ykB9v8l/xsB9gGaAcwB3AHMAdYB0v8lAf4B+v8VAfoB+P8pAeD/H/8b/yX/Cf8zAfgBvAG0Adj/K/8RAfr/Gf8jAf4B/AH8AewB/gH8/yX/M/87/xv/L/8L/y0B8v8zAf7/J/8F/x3/If8V/w8B1P8l/xH/HwH8/xX/Bf8f/xv/Ef8T/0v/Df8l/yUB+v8l/xH/EQH8/xH/F/8L/yUB8v8nAcwBvAHMAaAB+AHuAe7/JQH2Ae7/IQH2AdL/GwHSAfgB9AH+Aer/Kf8l/xv/AQH0/wf/AwHM/wEBzP8jAewBvv8vAer/BQGw/yX/HwH4/x3/G/8r/y0B6v8n/xf/G/8R/yX/Mf8f/xH/Gf8B/0EB/v8lAeT/Lf8l/xH/L/8l/xX/BQH8Ad7/If8LAd7/Hf8RAf4B1gH8/ykB/P8v/xv/CwHq/yX/JQH4AfT/JQAA/zX/Hf8X/zP/Ef8lAfb/Jf8fAfr/Jf8f/yUB/P8t/yX/K/8d/x8B+v8b/w3/GwH0/ykB+P8n/yX/Q/8b/zP/CwH6/x8BwP8l/yX/L/8T/yP/Af8L/xX/L/8zAeoB/P8z/xEB+P8bAYABzAH8AcL/Jf8R/xv/Ef8hAbIBgv8lAfD/HwH2/xX/BQGk/yf/BQHW/xn/BQHYAer/If8b/yX/C/8bAfj/Ff8ZAfr/Df8bAfYBxgHM/yn/Ef8R/yX/Ef87/xv/JQHkAfQBzP8RAf4B3v8h/xH/JQH+/xv/A/8H/y0B6v8l/xsB6v8jAfoBzAH4Aer/M/8lAfL/G/8p/xH/HwHS/xUB/v8l/xv/CwH2/y//Jf8J/yn/Qf8RAfr/If8lAaIB1P8R/xv/CwHq/yn/Ef8V/zMB6v8X/xX/JQHM/yn/JQHc/yf/O/8RAfL/Ef8l/wv/GwHW/zEB/v8jAcz/If8R/zEB2P8n/xH/G/8T/xH/H/8l/wX/I/8V/yP/CwGAAYr/H/8b/w3/If8lAfz/LQH+Af4B+AH6/yX/CQGiAdL/GwHw/yUB+P8L/xn/Jf8Z/x//Jf8JAcL/EwH0AAD/JQH+/wH/LwHSAboB6AHqAbD/JQH4/yX/Hf8l/yX/Jf85AeT/Ef8lAcj/EQHw/xX/G/8lAcz/Ff8l/yH/C/8F/xUB+P8bAcwBuP8lAcz/Ef8RAfz/Jf8R/x//B/8b/yX/JQH+/yX/Hf8l/w3/KwH8/wX/Jf8V/yX/M/8R/wkByAGwAfgB/AH4Acz/Kf8l/yUB/v8b/x0B/v8l/x8B+P8V/yf/Lf8bAfr/Bf8lAYAB5AH0/xX/Jf8fAfj/GwHi/y8B/AH4/yX/JQAA/x//Jf8f/xf/Jf8L/x8B6gAA/zMBwv8nAfD/Jf8l/yUB9v8lAfQB+AG4/xMB+P8l/yX/H/8V/wv/F/8b/yX/K/8R/x8B/AG0/yUAAP8vAfoBuv8n/zMB5v8pAfj/Jf8H/x//BwGw/yX/Jf8PAeoBvv8VAcgB7P8lAdb/S/8b/xcB8P8zAer/Ef8F/yX/G/8v/yf/CwGA/yX/Ef8l/yX/Cf8V/xv/Kf8nAf7/NQH6/yX/Cf8v/wkB8v8Z/xv/Af8f/yX/Jf8V/yP/Hf8jAf7/Bf9D/xMB/P8l/xX/Af8b/xv/FQH2Aer/Jf8l/xsB5v8lAfb/Jf8lAdD/Df8b/wX/Gf8T/yUBwAHI/xEB9P8h/yUB/v8NAdT/JQHq/w8BwAHMAcz/JQHy/wsB/P8D/xX/Jf8pAer/Bf8R/xf/JQH8/wUByP8h/zEB1AHc/yX/EQHM/xv/JQHE/yUBzAH0/wX/Jf8l/yUB+AH2/xv/Hf8bAfQB/v8fAeT/M/8HAfYAAP8l/yX/Kf8l/xEB3P8z/wv/If8p/yX/G/8lAf7/CwH4/wUB+AH+/wv/A/8b/xv/JQH6/wMAAP8R/wn/C/8H/xv/Jf8R/zP/Df8H/yX/If8bAfoB8v8T/y//GwHyAdb/Jf8fAeb/JQH8/yf/L/8l/xv/H/8J/xv/B/8L/yX/G/8b/wMB+v8FAcQB5gH+Aej/F/8l/wsBzAH4/xX/F/8DAaIBigGKAaz/Cf8lAeb/G/8n/y3/Jf8X/xX/Of8n/yf/MwH4/yf/G/8V/yv/JQH2/xsB7v8Z/yX/Jf8FAewBgP8nAe4B8gHgAdABzP8l/wX/Af8R/xEB5P8nAdz/Ff8lAdz/E/8b/xP/J/8l/yH/H/89/yUBzP8VAf4AAP8h/w3/C/8b/xEB5P8f/yX/EwHy/xP/Jf8P/yX/If8n/yUB1gH8AcwB+P8vAbgBtAHe/yX/C/8D/yEB/P8l/wUBpP8tAfAB5AHyAf4B9P8bAdAB1v8r/yX/E/8D/w3/G/8l/y//GwH6/xP/M/8f/w//Cf8T/yUB8P8D/wX/Df8l/xEB4v8b/yUB/P8b/wsB6AHu/wsBgP8z/yX/BwH0/ykB1gGw/yv/EQG+/x3/Jf8j/zP/Ef8Z/zP/EQHq/y8B6gG6/xv/AQHM/zH/B/8l/x8B6v8xAcwB6v8b/yUB6v8l/yEB+v8NAbD/G/8HAfr/BQH4/xcB1v8p/xf/Jf8B/yX/C/8H/xv/C/8ZAfz/H/8b/yX/L/8lAfb/J/8HAfL/IwGwAYD/J/8L/xX/F/8J/xX/H/8VAcABgP93AdwBuP8xAcz/JQH4/yn/Df8b/xv/If8FAer/J/8b/wsB8P8TAf4BgP8rAeb/M/8b/xX/G/8f/yX/Ff8b/yUB6v8b/xX/F/8pAdT/G/8lAe7/J/8r/ycB+v8n/yX/KQH+/x8B1v8f/yX/G/8B/yEB1v8n/xUB/P8VAf7/Jf8R/wf/Kf8F/wv/EwH4/xH/C/8J/xsB9gGA/yf/EwHqAfwB+gHc/xsB9P8lAf7/Ef8bAfwB8gHq/yv/C/8bAf7/Ef8t/y//FwHy/wn/IQH+AfwB/P8lAeoBuv8dAe7/Df8p/yUB+P8z/yX/G/8l/yn/Cf8f/wP/Jf8fAewBugGA/zP/Df8n/xv/G/8l/wH/G/8l/xX/L/8vAf7/I/8HAdL/G/8lAbD/G/8n/yX/JQHq/ykB/v8lAdL/G/8L/x//LwHi/x3/H/8l/xv/JQH6/yX/Ff8b/xH/K/8RAfr/Kf8X/yX/Jf8l/xH/G/8b/wn/EQHoAdwB1AHOAeQB7gHs/zn/JQHWAagBvv8XAbj/JQHo/x//Ef8lAfL/Jf8R/xH/Ff8l/yf/G/8lAfz/K/8Z/wv/FwHqAdb/Sf8HAcz/IQHgAfz/Jf8BAf7/HwHmAfIB/P8lAdYB1AHy/xv/Kf8lAfz/K/8V/w3/Ff8l/wn/LQH+AcwB/gHc/yn/EQGqAcj/CQH8Acz/M/8R/yX/Jf8Z/xv/Df8V/wv/EQH+/yX/Ef8fAYD/dQH+/yX/Qf8v/zkB8v8J/yX/Af8b/x//E/8l/yUB8v8l/yH/AwHq/x3/D/8l/yf/JQHGAbT/Ff8vAAD/Ef8h/yX/EQHQ/yX/G/8l/yX/FwHqAfz/H/8P/yX/Jf8X/xX/If8b/yX/Ef8VAYABuv8nAeb/Jf85Afz/K/8N/xcB9v8D/yX/F/8LAcwBuv8lAf7/I/8R/wv/G/8f/xUB5AH6/zf/JQH6/w0B/P8l/ycB9AH8AbAB0P8bAeYBugHEAcT/Ff8h/xP/Ff8f/wf/Ef8P/x8B+v8DAa4B+P8lAeoB/P8l/xH/Jf8N/yX/Bf8bAfD/Jf8bAf7/Kf8P/x//G/8V/yX/Jf8b/wH/G/8b/yX/Kf8H/yX/M/8p/yX/If8l/yn/EwHM/xP/Bf8xAeD/HQH2/zP/DQHqAeL/JQHOAbABxAHQAb7/Jf85/wP/IQH8/wH/If8R/x//Jf8l/xv/G/8XAfb/Jf8L/y//KwH+AAAB+AHqAe7/FQHwAfj/GQH0/x3/G/8b/yX/Bf8l/y8B0gH4/xX/Qf8b/yX/G/8fAfr/EQHc/yH/L/8b/yn/Jf8jAc7/Cf8f/y//C/8VAcwBsP8RAcD/JQHi/yH/Af8R/wn/D/8N/yH/Bf8dAdz/Rf8RAe7/LwH4/zP/If8t/x8B/P8xAfj/J/8l/w//Jf81Af7/EQHw/x8B/gG6/yX/Df8h/yUBgP8X/yX/Ff8X/y0B/gH4Af7/BQH+/yUB9AHM/zP/JQHMAer/C/8fAfr/B/8LAe7/HwH4/wn/Ff8N/zP/F/8v/0kB8P8H/yn/JwH+Afz/LwG+AYABkv8n/xP/Df8X/w3/If8l/yX/CwH8/wv/Ff8l/y8B+P8H/xUB/v8L/xH/If8b/x8BzP8l/xv/Ef8h/xf/Jf8DAfz/Hf8B/yH/Ef8L/yX/Kf8F/w3/Jf8H/yX/JQH4/xv/KQG6/yX/B/8H/yX/Jf8lAf4Btv8fAar/JQHMAcz/Ff8V/xH/QQH4/yUB+P8n/yX/A/8f/xH/LQH8/x//E/8l/yX/BQHq/yUAAP8R/xUB7v8h/wsBwgG4AfYBugHw/yUB1v8bAfD/Jf8hAcL/MQH0/xv/A/8f/xUB9P8pAcwB9v8l/xUBzP8nAdb/J/8J/xn/IQH+/yX/C/8lAdL/N/8l/xv/C/8zAeb/M/8RAfj/Df8lAeoBzv8XAcwB5P8d/yX/CwHkAb4B9AH0/xkB7P8FAcz/LwHqAfz/DwHO/yX/Lf8V/y8B/v8j/yP/F/8V/wsB0v8l/xEBzP8N/zn/Ff8D/xv/Cf8L/x8B6v8NAfb/H/8VAfoB/P8h/yX/AwH0/xX/Df8f/y3/BQAAAer/Df8b/xcB/P8lAeoBgAGkAdIB2AG0AbABzAGmAdwB6v8n/yn/C/8T/xH/Jf8v/wX/F/8fAeQB+P8J/xkB1gHo/yUB5v8jAfwB5v8X/yX/F/8H/yv/GwH8/yv/B/8lAfL/Ff8VAcz/Kf8z/w3/If8R/yX/Jf8B/yX/Ef8l/xf/Cf8b/xEBzAHkAdYB3v8V/wcBzP8bAdz/JQHY/w3/G/8RAbj/Ff8HAfAB6v8l/yf/JQH+/wX/G/85/yX/KQH+/yMB/AAA/x0BzAGy/xsB4v8v/xEB9v8t/xEB/AH4/xMB+P8JAfT/J/8v/yX/If8hAfgB5P8b/wsB/AHkAbr/IwH4AeYBxgG4AbT/J/8lAdb/Hf8z/y//NQH8/y8B/AG6/zMB5P8f/wcB/v8j/xkB1v8ZAbj/DQH8AbD/IQAAAdz/HwH+/xf/Jf8N/yH/Cf8l/yX/HwH4/yUB/P8f/xH/Ef8L/z8B6gH0/xX/G/8b/yX/D/83/zH/GwHM/wUB+P8l/yUB/v8Z/yEB/v8lAfwBzP8l/yH/Af8P/wUBgAG6AbgB7gHmAcwB+AHM/x//EQGAAegBvgHMAcz/Mf8l/wP/J/8J/yUBzP8l/yUBzAH6Af7/If8h/xv/FwH8/zP/Jf8bAeoBuv8l/yUB/v8F/x//G/8N/xH/Jf8lAfz/Jf8fAfz/Jf8RAAD/If8X/yX/J/8l/wv/HwH2AfoB5gHu/xcB1gGAAdQB2AHA/yUB/v8f/xv/Ef8PAf7/F/8l/xEB7gGAAcz/EQH+AfT/MQG4/xf/EQH2AfL/F/8lAer/JQHq/x//Cf8n/yX/BQHW/zP/G/8n/xX/C/8F/xUB/v8VAfwB/v8j/yX/Ef8L/wkB5P8l/0sB/P8l/wv/Ff8fAfj/JQH+AfT/L/8lAfz/IwHqAfj/JQHm/xv/Kf8l/xn/C/8l/wv/Jf8N/ykB/v8pAfoB+AH+Ae7/B/8V/yH/Ff8l/yX/C/8R/zP/FQHI/yUB+P8h/wEB/v8l/xn/Jf8l/yX/Jf8v/x8B/P8b/wX/GwGAAfgB6P8fAf7/Jf8BAegBgAGmAYABigG4/yUBzAH8/zP/Jf8L/yX/JQHC/xUBwAG0/yX/Jf8R/yX/LQHoAfD/AQHq/x8BzP8l/yX/G/8f/xH/H/8lAeb/Bf8L/x//AwH+Afb/Ff8hAf7/G/8z/x8B8v8fAbwB0v8fAdz/FwHW/xv/Jf8n/wP/H/8hAer/HQGwAbQBzAHMAYoBpgG6AdIBxP8d/xH/FQHk/yUB8P8l/xf/HwHqAdz/J/8J/zn/AQH4/yX/L/85/wf/Qf8Z/wUB+v8H/yn/JQHu/xP/E/8l/xH/L/8bAeT/Jf8l/w0B/P8j/zP/Ef8f/yf/M/8b/xEB/v8r/x//DQH8AfgB3gHiAcj/JQHW/y//B/8b/wv/Gf8v/xH/Jf8VAer/Mf8BAfoB1gHu/yX/JQHq/yn/C/8f/yX/FQHu/xsB0P8n/xUB0v8RAeQB9P8P/zP/JQH0Afj/If8lAfQB0gH2AboB4v8l/xv/Jf8l/zH/KwH6/xEB+v8h/xUB8gG+/yn/AQH6AeoBqv8f/w8BuP8tAf7/I/8J/y//JQH8/yUB+v8F/yX/Jf8l/yX/KQHk/yX/DwH2Aej/FwHSAeQBzAHwAbD/F/8l/yUB5P8n/wv/E/8FAfz/Jf8v/xv/JQH8/ykB/v8b/yf/D/8V/yX/Jf8VAfwB/v8H/x3/C/8l/xv/FQHq/xsB8P8b/xf/JQHy/yX/Ef8zAfAB1P8hAfAB6v8JAfj/K/8lAfoB7P8h/xUBtP8r/yX/B/8l/wf/Jf8J/wsB1v8b/xv/JQH4/yX/Ff8zAfz/H/8pAeoBzP8bAcz/Jf8l/yMBtAH8/yX/B/8R/xv/JQH+/zP/Ff8L/yf/Jf8lAer/L/8lAfz/HQHsAfz/GQAAAeT/Jf8n/y8B+v8FAeQBgP8l/yX/Ef8rAeD/Jf8J/ykB5v8f/xH/HwH2Aer/M/8l/xUB+AH4/xv/K/8R/xv/Jf8RAbwB+AHqAfT/HQHM/zH/Jf8F/xf/C/8lAfD/B/8vAdIB0P8f/yX/Df8J/yX/Jf8L/x//IQH6/yX/A/8b/yX/CQHq/yv/G/8ZAf7/I/8v/xv/Jf8lAbr/If8B/xcB6P8l/y//G/8H/yX/CwHy/yf/Jf8n/yH/Jf8HAbYBnP8x/xH/H/8b/w3/CwHg/x8B5AH6AYABigGy/yX/GQHu/yEBzP8V/yUB/gAA/wP/Ef8V/yEB+gH6Acz/B/8ZAe7/GwHq/x8B7v8l/yX/Ff8l/wX/CwHm/xv/E/8l/yX/Af8n/xv/Hf8z/xH/Bf8l/wf/F/8RAfgB5P8x/yX/Jf8b/yX/G/8H/yX/C/8b/xv/Qf8R/ycB8P8d/x//If8R/xP/Ef8Z/x0B8P8n/x8B3gH+/wMB7P8l/w8B/v8b/xH/K/8l/w//Jf8rAfT/JQHw/yX/M/8R/wEB+P8f/xv/Bf8vAeYB6gHy/wsB0v8bAeAB7gH8AdQBgAHM/x8B1gHMAfz/Jf8n/zH/L/8vAdz/Mf8NAfb/C/8lAcz/Hf8v/wX/Gf8bAfwB/AH2/xsBpv8l/xX/H/8V/wv/Lf8J/yn/IwH+Aer/DQG4/zP/I/8lAf7/HQH8Adz/SQH8/yX/Gf8F/yX/Df8f/xsB/v8N/w8B8gH6/yn/KwH4Ab4B/P8hAdIB+v8nAeYB/P8lAf7/If8hAcz/G/8H/xn/Jf8n/yn/G/8hAfT/G/8P/xUB3v8tAfr/E/8lAdj/Jf8lAfYBzP8V/zEB6v8v/x//M/8l/xsBzAH4/xf/Jf8bAfT/A/8X/w0B7gGAAYoBigGK/3f/Ef8f/yX/EQHM/y0B9P8f/yX/Jf8l/xEB8v8b/xsB9P8dAfgB/P8Z/yEB/P8b/y//G/8lAfoBvP8H/wkB/gHuAcwB6P8pAer/If8l/xH/G/8V/yUB/v8vAf4BxP8xAf7/D/8RAfz/S/8l/wH/GwHg/yX/JQH4/yP/Kf8rAfT/Hf8b/xH/LQH+Afb/E/8lAfr/If8DAbT/HwHi/yP/Ff8l/x//I/8xAfQBgP8f/xsB4gG+/wX/LwHk/yUB7v8l/yX/If8zAcz/G/8h/yEB1v8v/y//Kf87Af4B0gHC/yn/GwH2/wv/IQAA/w0B/v8V/yEB+AH8/wv/If8l/yP/LwHY/wv/E/8L/yUBzP8n/wEBzAHMAcwBpgHqAcgBvgG6Acz/Jf85AfT/I/8t/xkB9P8l/yUB8v8Z/xUB5v8p/wUB+P8l/yP/JwHm/wUBzAHMAdQBzAH4AbYBvgHKAdL/G/8L/wf/KwH+/y//H/8l/wcBvgHu/xv/JQHyAfQB6gHu/x8BuP8jAer/FwHu/yX/JQHc/yUB8P8V/yn/H/8V/xH/Jf8F/yUB4P8h/yX/Cf8nAer/Bf8l/zP/Ef8XAdL/HQHq/xX/B/8R/yX/M/8LAbj/J/8bAf4B6v8dAdb/Kf8T/xX/Ef8p/yX/Bf8lAfL/Gf8tAd4BwP8p/wn/GwH+Afj/Ff8h/wX/L/8l/yH/E/85/xsByP8b/xH/G/8n/x//J/8f/xEB/v8p/yX/Gf8Z/ykB6v8n/wf/Jf8D/w8B/P8l/zP/Jf8R/wv/M/8l/yX/Gf8hAfwB/P8l/yX/If8vAfYB+AHqAYABugG4AbYBwP8vAdL/IwH2/wsB9v8h/xv/G/8lAfT/Jf8fAcwB/P8LAfb/Jf8l/yX/Bf8L/xH/IwHCAdj/CwHYAfQAAAHM/x0AAAH+/x//H/8b/wcBzAGs/ysB/P8lAfr/Af8b/xcB6P8v/yX/GwG4/ycB+P8n/w//CwH+AfwB7v8bAcz/IwH8AbQBgP8f/xP/Ff8l/wv/J/8X/wn/Jf8R/ykBuv8b/yX/JwHc/xcAAAH8/yf/If8RAdwBgAHM/wUB+gH2/x//AQG+/x//JQHuAfj/Jf8TAbj/FQH+/yX/Df8VAfz/AwH+/xEBzAHS/yH/Cf8b/yX/Df8p/wEB7gH+/wsB6gH0AYABgAGgAaD/IQHk/y8B1v8V/yX/A/8lAeQB+P8VAbYBgAGKAYABmAG6Aeb/A/8l/w//I/8d/wX/J/8L/yX/A/8bAeoB7v8hAe7/B/8RAcz/GwAAAfT/JwH+/xf/If8FAfL/EQH8/yX/P/8nAdIBgP8X/xsB+P8fAfT/EwH4/xsBgAHy/xUB6gH8AdIB+v8rAfz/C/8R/ycB9v8l/ycB5v8PAer/Jf8R/yn/B/8H/xH/KQHG/yX/Hf8n/yv/Df8B/wX/H/8hAf4B6v8J/yX/Jf8f/yX/EQHMAYABxP8x/w0B+v8h/xn/BQG4Ab4B9AHqAdwB+gHs/xH/G/8H/x//HwHg/0n/EQHkAcT/HwHWAfT/FQHq/yEB6AGyAa7/N/8l/yn/OQHq/yUB9gHg/xv/B/8r/y8B/P8hAfYB9AHk/yUBsAHQ/yX/J/8R/yX/H/8r/xH/JQHa/yX/F/8z/wP/Kf8B/xcB/v8T/xH/CwH4/xv/M/8lAb7/GwH0/wkBzP8l/xEB9v8lAeL/DQH4/wP/JQAA/yH/Gf8l/xf/KQHk/yf/C/8f/w//C/83Af4B/P8p/zP/H/8B/wX/Nf8pAer/JQH+/xv/If8R/wX/C/8BAfz/IQG4AfL/GQG+AYABsv8dAaL/LwH8/yUB9v8f/w//LwH4/yX/Ff8p/wX/Df8f/xH/Df8bAfT/G/8N/yX/Ef8R/x8B+v8vAfr/I/8l/yX/J/8j/y3/GwH8AdT/I/8n/w0B7AH8/wP/EQH6/wv/H/8n/wv/Ef8f/yX/Lf8Z/w0B/P8p/xH/Jf8fAcz/CQH0AbQBsP8nAeoBzP8hAdb/GwHw/yn/G/8HAdD/G/8RAfwB5P8B/xH/JQHs/xH/CwHw/wH/Gf8b/ysB6gHu/yX/JQH4/xv/K/8j/xEB+v8RAfz/BwH4/yX/Jf8VAfgB5P8l/wP/CQHuAeb/H/8LAf7/CQH8Aaj/Bf8R/wP/Ff8BAfwBgP8f/yX/JQHm/ysB4P8d/z0B1v8jAfQB+v8lAf7/IQG+/xkB/P8x/yX/Ff8VAfj/G/8RAeT/FQH+Afr/Jf8l/wsB4v8b/xH/Jf8Z/xEB3AH6AeoBsP8z/yX/JQH8/yX/Ff8b/xf/G/8LAf7/H/8lAfYBvAH4/wH/BwG0/yX/Ef8f/wEBgP8pAfwB/P8hAf4B5P8f/xUB+P9L/yUB/v8d/yX/Jf8J/wX/BwHy/ysB+v8fAfYB0gHq/yUBxv8F/zP/Gf8LAZT/E/8b/zMB1v8l/xv/JwH+/yUB/gHI/yf/Ef8B/wH/JQHqAdL/KQG6/xP/Jf8LAeoB5P8r/yUB/P8l/wn/Ff8l/wsBvgH4/xUB9v8nAcz/F/8r/xH/JQHy/x8B/gHw/xH/Ef8D/yUB/gH+/yUB/gHq/xEB/gH8/ysB+P8X/zn/SwHMAfIB5P8fAf4B6gHIAcz/KQH4Acz/J/8bAfj/EQHw/wP/GwHM/x//Jf8dAfwB/v8F/y8B/v8D/yX/GQHaAAAB8v8l/yX/Ef8B/xsB+AHq/xkB+P8D/wMB+P8RAf4B+v8X/wv/Kf8b/yH/IQHM/w0B+v8P/x//Ff8l/yUBxv8f/yX/If8l/wn/Jf8bAf7/F/8l/wMB+v8l/xv/M/8lAfoBzAH8/yX/Jf8b/yX/Hf8H/wUB/v8f/xX/Ef8l/xH/Ff8v/xv/KQH4/x//Gf8j/wsB+P8n/y//Jf8zAfz/IQHq/zn/Ef8R/y3/Jf8D/xcB5v8Z/yX/H/8l/wEBzP8XAewB5P8D/xX/CwH4/wv/Cf8f/xkB+P8l/yUB/v8J/yUB6v8J/xsB/v8n/w3/Ff8J/y8B+v8lAdwB/gH2Af4B+P8f/y3/Bf8l/wX/JQH2/zsB+gHI/wX/FwHq/x8B6v8R/y8B9P8b/yP/Jf8l/yUB+AH4/ycB/P8R/xv/G/8h/yX/Jf8lAdYBsv8tAcz/LQHq/wX/G/8vAer/M/8J/x//G/8lAf7/JQHc/xEAAAHMAZj/MQH0/yEB+AHmAfT/Gf8L/x//If8pAfwB6v8j/xX/G/8XAfr/G/8L/xsB/P8lAf7/G/8XAbr/Mf8V/w0B1P8f/xEB9gH0Af7/F/8XAdIBwgH0/xX/Ef8rAfwB/P8N/zP/Ef8x/wP/Af8V/x//Ff8f/xcB/AHs/y//B/8lAfz/Df8l/yX/M/8h/xEB7v8f/yX/Af8b/xv/CQH4/xv/LwH8/wEB3P8p/xH/IQHE/x3/G/8jAfwBgAHW/yv/JwH+/wX/G/8z/wP/N/8V/y//I/8l/yUB+P8bAe7/Gf8t/wcB+v8F/y3/Jf8r/y3/Ef8LAeD/MwH8Afz/Hf8b/xv/C/8L/wEB/P8lAf7/Ff8B/wP/F/8PAc7/If8R/xEB8v8l/yX/Jf8l/xv/G/8rAfYB9P8b/xH/G/8b/xsBgAGAAbwBwAHkAf4BuAHM/xn/Ff8b/xH/JQH4AfYB/v8j/xEBwgHo/xsBzAHU/wv/B/8XAfoB3AH4/wUBzAHM/yn/V/8F/y8B/P8F/x3/H/8lAfj/Jf8L/yH/LwHq/xv/IQH8/xH/J/8lAfoBgP8l/xEB3P8l/zsBuv8j/wH/F/8pAfb/H/8l/xH/CwH8AbD/Jf8R/yUB9P8R/yX/JQHS/zP/FQHk/w3/GwHQ/yUBzAHM/yEBzAHQAdIB9P8rAe7/Cf8tAdb/IQHSAdAB+AH6AfIB+P8lAez/If8R/x//AwHu/xv/CwHI/yX/Jf8L/xv/BQH8/x8B/gHq/w//H/8lAf7/BQH8/yX/JQG0/xf/Af8b/zcB/v8RAfz/F/8v/xH/JQHo/x8B+P8h/yf/JQH+Abr/F/8l/wP/BQH0/yX/Bf8F/xn/Bf8F/xUB8v8dAfz/Ef8L/wX/G/8b/w0B+P8T/yH/Jf8hAfwB7v8p/w3/FQH8Adr/Jf8b/wX/I/8RAeoB7P8dAdL/JQH8AfgB+P8L/yUB4P8b/xsB6gH0/yf/Ef8PAcz/J/8z/xH/Qf8h/xv/BQHs/yEB8P8bAYABigGYAaz/JwHk/yUB/gHM/x//H/8X/xsB+v8R/wv/Jf8D/ysB9v8p/xv/Ef8H/xv/IwH6/yUB6v8n/xsBwAH4Acz/Jf8R/wP/Jf8bAer/AwHoAf4B9v8lAfj/DwHi/yX/N/8R/wv/J/8b/y8B0AHU/yUB5v8n/wv/Jf85/w8B4P8V/x3/If8vAcz/If8RAfz/H/8DAej/If8bAbr/G/8XAfwB1v8n/wEB/P8d/yUB9P8l/w0B5P8r/x//Hf8H/xX/F/8H/xEB1P8nAfoB+P8l/xsB+AG6Acz/M/8l/yX/IQH+/ykAAP8h/xf/H/8FAeoB6v8RAcz/FQHs/yX/Jf8FAAD/H/8PAbD/G/8h/yUB6v8J/yX/LwH0Afr/Jf8B/w//BQH8/x3/BwHqAb4BtAH8AegB8v8lAer/Kf8JAfwB/v8XAfz/Qf8DAfb/Af8hAfIB2P8l/wsB6v8z/wf/Hf8l/yX/Jf8l/yv/J/8R/xX/Jf8J/xX/DQHc/y8B5P8nAeIB8gHqAeoBtv8h/yUB/v8f/y//Gf8t/x//K/8f/w3/Jf8R/yX/JQHq/yEB/v8l/yX/EQG4/zH/CQHMAfz/Jf8B/x//Jf8FAfz/B/8l/yUB/P8b/wf/Jf8lAeoB+AHYAYABgP99Af7/Lf8l/wP/G/8p/wf/Af8ZAfD/Kf8fAf7/HwHqAfj/CwH6Afj/JwH6/x0B5v8p/yn/Af8j/yX/C/8fAfz/F/8b/x//Bf8lAbT/C/8lAf7/M/8j/yX/F/8lAfj/H/8RAfL/H/8b/wv/HwHs/yX/BwH+Afz/Jf8J/xcB/P8dAbz/Ff8B/yX/I/8z/wP/AwG4Ab4BgAGoAa7/J/8TAfT/Jf8jAdABsgG+AfIBtgHMAeoBzAG+/x8B5P8z/x//Jf8V/wv/H/8R/wcB9v8RAfoB+AH8AfT/BQHkAYABgAGKAeT/If8H/yv/G/8X/yH/If8R/yX/Jf8lAcwB/P8nAf4B0gH0/wf/Cf8D/yf/EQH8/yf/Ef8lAfz/JQHw/wv/BwHc/xcB5P8R/xsB0v8RAfb/BwG0AfgB3P8lAf7/G/8b/yH/E/8hAf7/Jf8l/wsB/P8tAfIB9P8NAeQB5P8l/wsB/AH4Afr/Jf8lAfQB6v8B/yUB/v8X/y//CwHWAboBgP8D/wMB/v8VAbj/Jf8lAfj/Qf8RAdL/PQH8/xUB/AH2/xP/LwHw/x//G/8l/xv/Jf8NAfz/MwHy/yX/D/85/yX/JQH4/wX/JQH+/wkBzP8t/wf/If8D/yn/C/8b/xH/GwHM/yn/EQH0/wv/Jf8l/yUAAP8HAbj/H/8P/xH/JQHk/yUB/AH8AfYB7P8fAfL/D/8l/yH/If8b/y8B9AG+AbQBgAGAAaoB6gH+/zH/Jf8l/yX/I/8l/yX/Jf81/yn/Cf8N/xv/LwH4Ac4BlP8nAfT/BQHE/wsBov8f/y//GwHWAfz/LwAA/xcB/P8R/yUB/v8f/wn/G/8f/y//Jf8p/yn/Ef8lAfABzP8BAcwB6v8fAdwB+v8v/w3/JQH8AYD/F/8PAdYB+v8RAeD/Cf8Z/yf/A/8l/x//Jf8b/yn/Ef8zAfz/Jf8lAer/Jf81/wH/G/8R/xf/Jf8hAeb/IQG4/yH/GwHM/y//Cf8R/zkB1v8b/w0B9v8lAer/Kf8VAfIB+v8b/zMB5AG+/0kB7v8xAfT/FwHA/xv/JQHy/yf/BQH+/yEBzv8T/yUB8v8F/yX/NwHqAfr/Jf8l/y//Ff8Z/wH/Jf8P/wv/Jf8RAfr/G/8f/wP/I/8R/yMB/P8l/yUBwgHM/wv/HQH6/x8B/v8J/wX/Jf8V/xEB5AGyAcYBugG8Acz/KwG6/xn/IQG8Abj/BQHW/yf/JQHO/ykBuAH8/yX/FQHu/wn/K/8L/yn/AwH4/xf/Bf8D/yf/Kf8bAfT/Jf8RAfz/Jf8l/wX/LwH6AfIB5P8l/wP/H/8lAej/K/8lAfoBxgH4Acr/If8lAf7/JwH4/yX/EQHc/xX/BwGw/yX/JQH+/wv/JQHg/xf/GwH6/yX/H/8HAfgBzP8bAfABzAGwAcwBgAGKAaABmAG0AYAB9gHYAfT/Ff8V/wf/B/8f/wX/LwH+/0v/Af8f/wcB9v8hAfr/H/8l/y//JQH6/yf/Kf8l/xP/Kf8R/0kB+P8l/xX/NwH+/ykB+AH0Afj/Jf8X/x//C/8l/yX/If8l/wn/Df8LAbgB+P8hAcz/JQHc/y8BzAH8/yUByv8N/xsB/P8f/xH/K/8JAdb/Df8B/yH/B/8b/wv/Df8l/zn/Bf8nAAAB5v8RAaz/HwH+/yv/H/8l/x//Lf8l/wv/J/8V/yX/G/8b/yn/C/8b/x8B/v8b/wH/C/8n/xH/Df8n/yP/Ff8RAfoB6v8b/wf/FQGAAYoBsP8lAf7/J/8n/wsB+v8h/xH/Jf8X/x//B/8l/yEB+gHuAf7/LQH+/wX/LQH4AboBgAGKAYIBzgH8/yX/HwH4/y0B1v8b/0//Jf8vAf4B9v8V/xEB3P8dAf4B9P8lAcz/Kf8RAfj/Bf8XAfj/H/8V/xEB6gHa/xf/JQH8AcwBuv8r/yX/IwGuAfj/Lf8l/yP/L/8j/xv/Kf8lAAD/GQH8/x8B/P8v/xv/Ef8nAfL/Jf8J/yf/JQHq/xf/JQHq/xP/Ff8p/xv/CwH4/yEB/v8lAeoB/AHq/xv/CQH4Adb/E/8lAAD/Ef8N/w//Jf8lAYABgAGAAYr/HwH+Afj/Kf8R/y3/Kf8H/yX/Jf8d/wcB/P8bAeQB+P8l/wf/G/8F/yUBuAHuAYABtAH6AcwBsv8lAe7/K/8f/xH/JQH+/xv/Jf8R/wX/C/8DAfwB8P8P/wf/EwH+/xn/LwH+Afz/G/8bAcABpP8lAegBvv8bAc4ByAHCAbABqv9L/yX/G/8r/xcB6v8z/zn/Ef8zAdD/If8F/xsB9gGwAfwB/AGgAbQBxP8V/xEB/P8z/wn/A/8R/yEBtAHE/xX/Jf8hAYD/Mf8Z/yUB/P8BAcz/Jf8b/yX/Ff8l/wsB5P8nAcgBtP8LAbT/JwHM/yH/Df8Z/xUB+v8p/yEB6v8B/wX/Jf8RAb7/I/8fAdz/Df8h/yn/Cf8XAf7/I/8R/y//Cf8Z/yn/Jf81/xf/JQH8Af7/Ef8V/yf/Ef8H/yH/Jf8R/y//Bf8L/xX/LwGA/yUB/v8ZAbj/GwH6Afb/K/8l/wcB9P8fAfoB2AH4Ab7/HwG4/yEBwgG0/xv/Df8f/xEB+v8fAeD/AwH+AfwB8v8fAfwB/P8L/wsB2v8h/xkB/v8XAe7/JQH0/yn/C/8p/y//J/8j/yn/Pf8p/wX/GQH4/ycB8gH4/xUBrv8n/xH/HwH4/w0BgAGKAYr/JQG4/xf/Jf8l/yX/FQH8/yX/G/8l/yX/G/8b/xv/DwHCAfL/JQH+/yX/EQHK/yX/GwH6AcwBzP8pAer/A/8h/xv/JQH0/xv/Of8H/yX/E/8f/x//Cf8XAcz/B/8l/xEB3P8f/xH/FQG0/xH/Ef8PAfwBtAGyAaABzP8hAf4B6v8BAfb/FwHcAer/M/8RAa7/JQH0/wX/FQHy/x//Ef8l/xv/C/9LAfT/If8l/wn/Ef8lAfj/Kf8dAcwB/P8b/xv/JQHMAYD/G/8h/yEBzP8n/wH/Jf8v/yEB6v8t/yUB1gGA/3X/Ef8fAbgB+P8l/xH/JQHo/yX/IwH8AfoB0P8R/x8B6gHqAYABggGKAawBugGq/yX/Ff8H/xsB8v8h/yX/Gf8pAfT/Hf8H/yUBqP8dAcABgv8f/xv/Bf8p/wUBgP8DAfQB+v8lAf4BzP8l/xX/JQH4AbT/B/8F/wf/G/8b/yX/M/8pAfj/EQHO/wEB9AHY/yf/A/8TAb4B/P8X/yUB8v8lAf4B+v8R/xEB8gH+AbQB/AH6/wn/Kf8z/xv/Jf8//xv/Jf8l/yn/G/8b/yn/L/8l/yH/FwHMAcwBzAHOAdgBrP8l/xv/BQHy/yX/JQHIAe7/J/8D/y8B/gHm/xv/Jf8h/yUB8P8X/x8B6v8h/x8B5P8pAcj/GwHOAboBwAHMAfj/Jf8D/yEB/P8f/xsBzP8lAdIB/P8LAc7/CwHsAfz/BQH2Aez/KQGyAfz/IQHc/yX/H/8H/xH/Lf8fAf4AAAH8Ad4BgAHuAeYBuv8p/wn/Gf8l/yX/Gf8j/xX/Jf8V/yX/Ef8fAfD/C/8l/wkB1v8rAeIBgAGgAdgBsP8bAcgB9gHw/yn/Bf8H/xv/NQH+/x0B5AHM/wP/Kf8jAer/Jf8v/wP/L/8fAej/H/8TAdD/Lf8b/yH/Ef8l/wEB/v8pAfIBzAGA/x3/JQHwAdwBzP8LAcb/J/8F/wsBuv8lAbAB6v8fAbD/H/8V/wn/H/8t/yX/Ef8l/x//B/8v/yX/JQH6/xX/Ef8DAf4B/v8X/yP/MwHM/wP/HwHM/yUB/gG6/xn/GwHq/wn/Jf8lAe7/J/8R/wX/If8N/x//Jf8V/yX/Jf8DAe7/CQHWAbr/FQHEAYD/IQH+/yMB5P8lAf7/FQHg/xv/F/8P/xUB+v8l/wv/H/8vAcz/If8DAYD/Kf8X/wf/E/8l/yH/F/8hAe7/GwH6/xkB9P8lAer/K/8N/xH/GwHq/w//Jf8J/x//Jf8N/wkB/v8dAeT/FQGw/yX/Jf8l/x0BzAG0/x0B5AH8Adb/d/8H/yv/GwHW/xv/GwHgAeT/EQHcAb4BwAHwAfgBsP8h/yUB/AH8/xcB/v8dAfr/B/8v/yUB/v8l/x0AAP8l/w3/Jf8JAez/Kf8l/xX/CwGs/y3/Jf8V/yUBxv8b/yX/Jf8l/xn/Ef8lAfwB5P8lAcwBgAGKAcgB+P8hAfz/Ef8RAb7/Kf8LAcz/Cf8DAb7/JwH0/yf/Ff8j/yf/If8lAer/DQGu/yf/Jf8p/xMB/P8l/wUB+v8lAdb/Df8b/wP/Mf8RAfL/Jf8b/yUB6gHc/y3/Ef8lAAD/LwHq/yUB/P8zAdr/Kf8FAer/JQGwAbz/L/8lAf4BtAHM/w3/FQH+Afz/H/8R/yX/Gf8DAeb/JQG4Ab4BgAGgAYABvv8fAfj/B/8x/xH/JQH+/x//Bf8z/wf/EQHI/x8B+P8T/xv/Jf8b/wv/L/8F/y//Q/8RAb7/G/8nAdL/HwH+/x8B9v8l/x//DQHq/wv/FwH4/yH/Jf8N/yH/HwHq/wX/Jf8V/yH/F/8l/xsB0gH8/x0B1v8h/xsB/P8j/wcB8v8b/y8B/AH4AYD/dwH+/yH/JQHw/wcBrAHM/x//BwHkAe7/CQH+/x//Jf8fAfj/LQHk/yn/JQH+/wv/Af8z/yX/JQAA/wf/Ef8Z/wf/Af8L/yX/Ef8lAfb/F/8FAbr/L/8V/y8BwP8tAeT/Kf8l/yn/F/8l/yUB/P8lAf4Buv8l/xX/HwH+AfQB9AH8/xX/Jf8L/x//C/8t/wEB6v8bAf4BxP8J/yX/GwHO/yf/Ef8B/yX/Jf8n/wcB9v8NAf7/B/8pAeb/J/8l/wMB3P8n/xH/IQHIAfQB+AHuAcwBrgGoAYoBrAGsAb4BtAH0/yX/C/8f/x//JQHM/w//C/8h/x//Kf8TAcz/H/8R/yv/B/8t/yP/IQHgAfQBwP8d/wv/Af8fAfIBwAH4Ae7/EQH+Af7/Jf8BAcz/H/8H/yEB+AH4Ab4B7P8f/yX/CwH4/yUB+v8LAfT/E/8VAeT/CwH4/wkB3v8X/wv/G/8h/wUBwv8n/xUB8v8lAcYBsP8l/xv/M/8l/wH/Jf8lAdgBtP8f/wn/F/8z/zf/Of8b/y8B6v8R/wH/H/8lAdz/If8D/wP/Jf8D/xf/G/8DAeT/Jf8X/xH/GwHu/zP/JwHu/xH/FwH8AdYBsAH4/wsBzv8l/yX/Jf8l/wP/G/8Z/x//G/8B/ycB6gHm/yv/EQGAAYoBuv8l/x8BgP8f/ykB7P8NAfz/LwHW/x0B1gHW/yUB6v8RAfgB0gHyAcz/JQHm/yX/Ef8lAfj/B/8f/xn/Kf8l/xH/J/8F/xX/Jf8l/1EB8gHM/xf/Ef8N/ykB3AGu/ycBugHQAeIB7v8xAf7/EQH8/x//Ff8R/wX/G/8f/x//Jf8z/wH/Bf8l/x//Jf9L/xv/GwH8/xv/GQH4/xX/E/8b/xH/Mf8F/w3/H/8lAe7/C/8l/wcB+v8lAd4BrgH4AdYBzP8nAer/J/8R/yUB/P8bAfL/Jf8vAfD/G/8v/yUBwP8L/xsBzP8FAdz/JQH4/yEB3v8l/wH/Kf8RAfj/Jf8HAfQB4v8Z/y8B5P8X/yv/Jf85/yX/Bf8L/yX/Ef8BAbAB4v9B/yX/JQHg/xEB1gG6/yv/Jf8l/wv/Kf8p/xEB8v8bAdz/AwHM/yUB/v8P/xcBsP8f/xv/C/8b/xH/G/8NAcj/QQH8AcwB2P8TAeb/I/8lAeQByAGw/yUB7P8l/x//C/8H/yX/IQH4/xsB/P8X/yn/Lf8f/xsB/v8B/wv/H/85Aez/H/8lAer/GwH2AbD/F/8b/yUB+P8H/ycB+P8t/x8B+P8V/wH/C/8b/xP/EQHg/wP/J/8l/wcB7P8p/wUB6gGw/xMB+P8f/xH/Gf8P/x//JQHs/y8B9v8N/yUBzP8n/xv/CQH+/yX/If8l/wcBzP8b/wkB8v8N/xv/IwH8AfT/G/8JAer/QQHs/yP/B/8X/ykB8gHMAbD/Kf9f/y8B4P8vAdb/Kf8RAeoBgP8b/xv/E/8l/yv/L/8LAer/QQAA/x//Ff8l/yX/H/8f/yUBuP8vAfr/J/8LAcz/G/8L/yUB9P8d/xUB9v8l/yn/Ef8X/y8BzgGAAYIBigHIAboBugHUAcz/J/8bAcT/F/8RAfz/F/8l/yX/G/8rAeYB/P8bAf7/Jf8L/yX/G/8lAfz/Ff8l/xv/A/8bAez/CwHcAYD/KwH+/yUB9v8L/w3/EQH8/yUB1gHM/zP/F/8X/xv/L/8fAYD/H/8V/yUB7gHm/yX/JQH0/xX/Ef8b/xH/JQHm/yH/Hf8B/x8B7v8f/xH/LQHuAcT/KwHyAf7/Gf8l/xv/J/8HAer/LwHI/xsBwAG0AYoBoP8l/wf/Jf8b/y3/BwH8/y//M/8H/yUB/v8N/xv/J/8l/y3/M/8b/xX/Af8H/yUBzP8f/y0B+v8XAer/JQH4/x//F/8l/wn/KQHw/yf/Ef8l/x8B3P8l/yP/LwH8/y8AAP8l/yX/Jf8hAfz/Of8PAe7/Jf8b/xv/G/8DAfz/J/8b/xn/Jf8V/wn/JQH+AeoB/P8nAdL/Jf8LAfT/Ef8j/yH/JQH+/yn/Ff8F/yn/G/8D/wn/Jf8R/yH/I/8FAfYB9P8VAfr/JQH+/0sBuv8X/yX/L/8j/w8Bzv8l/wf/M/8fAfj/Jf8l/wv/KQH6/xEB6v8fAfL/If8bAf7/HwH2/yP/Jf8l/yX/G/8l/xv/Jf8H/yX/Jf8L/yf/Jf8H/ysB+P8L/xsB+v8HAeQBzP8B/y8B/gHm/xcB7gH0AbT/Jf8H/w8BzP8D/yX/Ef8F/xv/HwHW/yX/H/8F/xv/HQH0/yEB6v8JAez/KwH4/wcBvv8l/yX/IwH6/wv/Kf8f/wv/Jf8B/yX/G/8f/ykB9P8l/yX/JQHmAcwB7AH4AdwBugG0AbgBiv91AfwBvv8X/xsB+AH2AfL/HwHMAdb/H/8V/wn/G/8L/wX/Jf8R/y//G/8DAdIBtAHoAer/B/8zAbABvv8b/yUB6gHM/x8ByP8lAfb/Cf8f/wEB+v8lAfoBgP93Af7/Lf8ZAfz/I/8TAfIB9gH8Afb/JQGuAbD/LwHqAcz/G/8BAb7/Kf8l/y3/If8vAfL/CQHq/xv/Jf8f/xP/Jf8P/xv/Lf8l/yX/JQH4/xUBgP8lAf7/FQHW/yf/G/8l/zkB8v8t/yv/KQH8Afj/Jf8D/w3/C/8L/yUB5P8lAer/Kf8HAer/AQH4Ab7/EQH6/xn/Ff8J/xX/GwH6AfwB9P8NAcwB/P8nAer/Jf8R/yX/GQHcAez/G/8H/yX/Jf8j/x8B+v8j/wsBrP8V/yUB0v8fAbYBvP8lAfgB+AH6/yUB6v8R/yX/G/8b/y8B8v8D/wsB8gHu/yH/Bf8hAfL/Ff8jAfj/HwHM/xsB+v8B/y//G/8VAewB0P8hAcz/J/8B/wX/C/8B/yUB/P8lAf7/H/8l/w0B8P8hAf4ByP8V/xX/HwHqAcT/JQHwAeD/FwH4Afb/Ef8lAeIB/P9B/xX/If8fAcwB/v8JAe7/HwHy/wf/G/8RAc4BzAG+/yX/B/8j/xH/Jf8JAf7/PQHkAeT/KwH6/yUB7gHM/yUB/v8d/x8ByAH4/xH/Hf8n/wH/Jf8l/w//D/8f/wUB+AHW/y8B9P8Z/xcB0P8p/y8B6v8L/wEBgAG0AbQBvv8nAf7/D/8R/xv/Bf8z/yX/Jf8z/xv/Jf8//wX/Jf8fAcwBvgGAAcwB5gG0/yUB6gHM/yn/BwHqAfoB8AH6/wv/Jf8V/y8B+v8r/yv/Gf8bAfj/K/8x/yH/KwH+Abj/HQH2AdgBzP8DAf4B9v8l/xH/BwHs/yX/Jf8J/yUB9gHMAcQBxP8NAfz/If8HAfr/Jf8v/wf/Kf8xAdb/JQAAAer/G/8b/x//CQGoAcj/FwHqAfj/JQHqAcz/HwH+/x//EQH4AegB/P8n/wf/Jf8hAfz/FwHM/x//C/8TAe7/Kf8v/wv/H/8H/wH/C/8Z/yX/Cf8l/yX/KQHo/yEB6gH+/yUB6v8h/xsB7P8l/wX/Jf8H/x//Jf8l/w0B3P8lAfwB9v8FAeT/Jf8L/xv/JQH0AYABgAH4AbQBtAGgAbT/IQH8/yUB4gH8/xH/Cf8vAf7/KQH8/yX/G/8LAeb/KQH4AdL/HwH0Ae7/IwH+Afr/K/8XAbgBugG+Ae4B3AHEAYD/NwHgAar/JQHM/yf/Jf8h/x//HwH8/xcB7P8F/yX/F/8v/zH/L/8T/yX/EQH+Af7/M/8lAf4B3AGA/yf/Jf8ZAcwB2AG4/xf/G/8V/xP/Jf8l/yn/A/8fAfT/C/8F/yX/Jf8v/zn/C/8r/yv/JQH6/0P/Jf8b/yf/C/8DAYD/Jf8p/wv/G/8lAfwB/gH4/xv/Af8bAf4B1v8V/w3/HwH+/y8BzP8fAfj/JQHcAeQBzP8xAer/C/8L/wH/G/8B/yX/LwH+/y0B+P8b/yn/Af8h/yX/CwHWAcwBzAH8AeoBuP8z/wP/BwH0AfwB8v8n/yX/Jf8h/xH/Cf8VAer/GwH8/yUB/AHM/wv/E/8dAeoB4AH8/w0B+gH8/wkB9v8f/yUB/gH+/yH/JQG0AYD/JwHSAfgB+AHMAcYBuv8d/wsB4AH8/yX/Jf8fAdL/QwHqAcj/MwHy/zH/Jf8V/x8B+gH+/yUBvAHk/wkB/gHo/ysB1v8l/xkB+P8N/w3/H/8V/xH/H/8vAeb/H/8l/wf/D/8fAfj/Gf8v/xX/F/8b/yf/FQH4/zH/Af8L/yX/Gf8PAfz/Jf8L/xH/Hf8b/yUB5gAAAe7/IwH6/wX/CwH2/yX/Ef8L/yX/G/8l/wkBsAHE/ykB3P8t/wEBgAGAAYoBsP8hAdgBoP8NAfgBuP8VAf7/G/8l/xEB5v8fAfgBvv8f/wsBzP8hAf4AAP9LAbQBrP8tAcL/H/8FAez/DwG+AbYBwv8nAf7/C/8B/yv/Jf8f/xX/EQH6AfL/GwHMAbT/CQH+AeA=\" type=\"audio/wav\" />\n",
       "                    Your browser does not support the audio element.\n",
       "                </audio>\n",
       "              "
      ],
      "text/plain": [
       "<IPython.lib.display.Audio object>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "plt.plot(generated_sample[0:1000])\n",
    "\n",
    "from IPython.display import Audio\n",
    "Audio(generated_sample, rate=sample_rate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "np_sample = np.asarray(generated_sample)\n",
    "\n",
    "from scipy.io import wavfile\n",
    "wavfile.write(out_file, 11025, np_sample)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "generate...\n",
      "Generating took 4.506111145019531e-05 seconds.\n"
     ]
    },
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "window.mpl = {};\n",
       "\n",
       "mpl.get_websocket_type = function() {\n",
       "    if (typeof(WebSocket) !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert('Your browser does not have WebSocket support.' +\n",
       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "              'Firefox 4 and 5 are also supported but you ' +\n",
       "              'have to enable WebSockets in about:config.');\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent = (\n",
       "                \"This browser does not support binary websocket messages. \" +\n",
       "                    \"Performance may be slow.\");\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen =  function () {\n",
       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
       "            fig.send_message(\"send_image_mode\", {});\n",
       "            fig.send_message(\"refresh\", {});\n",
       "        }\n",
       "\n",
       "    this.imageObj.onload = function() {\n",
       "            if (fig.image_mode == 'full') {\n",
       "                // Full images could contain transparency (where diff images\n",
       "                // almost always do), so we need to clear the canvas so that\n",
       "                // there is no ghosting.\n",
       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "            }\n",
       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "        };\n",
       "\n",
       "    this.imageObj.onunload = function() {\n",
       "        this.ws.close();\n",
       "    }\n",
       "\n",
       "    this.ws.onmessage = this._make_on_message_function(this);\n",
       "\n",
       "    this.ondownload = ondownload;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_header = function() {\n",
       "    var titlebar = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width);\n",
       "        canvas.attr('height', height);\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus () {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_message = function(type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function() {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'];\n",
       "    var y0 = fig.canvas.height - msg['y0'];\n",
       "    var x1 = msg['x1'];\n",
       "    var y1 = fig.canvas.height - msg['y1'];\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
       "    var cursor = msg['cursor'];\n",
       "    switch(cursor)\n",
       "    {\n",
       "    case 0:\n",
       "        cursor = 'pointer';\n",
       "        break;\n",
       "    case 1:\n",
       "        cursor = 'default';\n",
       "        break;\n",
       "    case 2:\n",
       "        cursor = 'crosshair';\n",
       "        break;\n",
       "    case 3:\n",
       "        cursor = 'move';\n",
       "        break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = cursor;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message(\"ack\", {});\n",
       "}\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            /* FIXME: We get \"Resource interpreted as Image but\n",
       "             * transferred with MIME type text/plain:\" errors on\n",
       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "             * to be part of the websocket stream */\n",
       "            evt.data.type = \"image/png\";\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src);\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig[\"handle_\" + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "}\n",
       "\n",
       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function(e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e)\n",
       "        e = window.event;\n",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\n",
       "\n",
       "    return {\"x\": x, \"y\": y};\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * http://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys (original) {\n",
       "  return Object.keys(original).reduce(function (obj, key) {\n",
       "    if (typeof original[key] !== 'object')\n",
       "        obj[key] = original[key]\n",
       "    return obj;\n",
       "  }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
       "    var canvas_pos = mpl.findpos(event)\n",
       "\n",
       "    if (name === 'button_press')\n",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x;\n",
       "    var y = canvas_pos.y;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.key_event = function(event, name) {\n",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, {key: value,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
       "    if (name == 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message(\"toolbar_button\", {name: name});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
       "\n",
       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.close = function() {\n",
       "        comm.close()\n",
       "    };\n",
       "    ws.send = function(m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function(msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['data'])\n",
       "    });\n",
       "    return ws;\n",
       "}\n",
       "\n",
       "mpl.mpl_figure_comm = function(comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element.get(0);\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
       "        return;\n",
       "    }\n",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    fig.root.unbind('remove')\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable()\n",
       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
       "    fig.close_ws(fig, msg);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message(\"ack\", {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items){\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('tabindex', 0)\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager)\n",
       "        manager = IPython.keyboard_manager;\n",
       "\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which == 13) {\n",
       "        this.canvas_div.blur();\n",
       "        // select the cell after this one\n",
       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
       "        IPython.notebook.select(index + 1);\n",
       "    }\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.find_output_cell = function(html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i=0; i<ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code'){\n",
       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] == html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "}\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel != null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div id='3e78761f-ca78-4384-a8bf-c7f62c33b391'></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "ename": "NameError",
     "evalue": "name 'generated' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-12-e1d7aba796bd>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgenerated\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'generated' is not defined"
     ]
    }
   ],
   "source": [
    "print('generate...')\n",
    "tic = time.time()\n",
    "#generated = model.generate(start_data=start_tensor, num_generate=100)\n",
    "toc = time.time()\n",
    "print('Generating took {} seconds.'.format(toc-tic))\n",
    "\n",
    "fig = plt.figure()\n",
    "plt.plot(np.asarray(generated[-100:]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from ipywidgets import FloatProgress\n",
    "from IPython.display import display\n",
    "progress = FloatProgress(min=0, max=100)\n",
    "display(progress)\n",
    "\n",
    "def p_callback(i, total):\n",
    "    progress.value += 1\n",
    "\n",
    "sample_length = 44100\n",
    "\n",
    "tic = time.time()\n",
    "#[generated_sample, support_generated] = model.fast_generate(sample_length, first_samples=torch.zeros((1))+0.1)\n",
    "generated_sample = model.fast_generate(sample_length, \n",
    "                                       #first_samples=start_tensor,\n",
    "                                       first_samples=torch.zeros((1)),\n",
    "                                       progress_callback=p_callback)\n",
    "toc = time.time()\n",
    "print('Generating took {} seconds.'.format(toc-tic))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "fig = plt.figure()\n",
    "plt.plot(generated_sample[0:1000])\n",
    "\n",
    "from IPython.display import Audio\n",
    "Audio(generated_sample, rate=11025)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "np_sample = np.asarray(generated_sample)\n",
    "print(\"sample: \", np_sample)\n",
    "\n",
    "from scipy.io import wavfile\n",
    "wavfile.write('generated_bach_11025_sample_12_layers.wav', 11025, np_sample)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [conda root]",
   "language": "python",
   "name": "conda-root-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  },
  "widgets": {
   "state": {
    "b0f55e80ffe6472e99c2a90fe2184b1e": {
     "views": [
      {
       "cell_index": 8
      }
     ]
    }
   },
   "version": "1.2.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
